2012-05-15 1 views
2

Я хочу добавить удаленный git-коллаборатор в один из моих проектов, но я не хочу, чтобы он получал доступ к моим паролям в database.yml. Я знаю, как .gitignore database.yml и продуть репо соответственно, но проблема в том, что я развертываю этот конкретный проект в DotCloud, который, насколько мне известно, требует, чтобы database.yml был частью git repo. Лучшее решение, о котором я могу сейчас думать, это использовать rsync, чтобы нажать на DotCloud, но я бы скорее нажал прямо из git repo. Кто-нибудь знает, как я могу это сделать?Как я могу исключить database.yml из git-репо, хотя все еще могу нажать dotCloud?

+0

Я понятия не имею, что такое DotCloud, но мне трудно поверить, что на любой платформе вам придется вводить пароли в git-репо. –

ответ

4

У вас есть несколько различных вариантов в зависимости от того, что вы хотите сделать.

Вы можете поместить файл database.yml в свой .gitignore file, а затем, используя dotcloud push, используйте rsync вместо git, чтобы нажимать ваш код.

$ dotcloud push --all ramen 

Использование опции --all заставит загрузчиком использовать метод «Rsync», и, следовательно, толкать все ваши файлы. См. Эту страницу для получения дополнительной информации. http://docs.dotcloud.com/guides/git-hg/#pushing-uncomitted-changes

Если вам нужно проигнорировать файлы, вы можете создать файл .dotcloudignore и добавить файлы, которые хотите игнорировать, нажав туда.

Второй, лучший подход - не помещать ваши пароли в ваш файл database.yml вообще.Добавьте свои пароли в качестве переменных среды, а затем ваш файл database.yml может быть безопасным и не содержать паролей.

$ dotcloud var set myapp MYVAR=MYVALUE 

Вы можете ссылаться на переменные точно так же, как вы делаете с environment.yml или environment.json. Более подробную информацию можно найти здесь: http://docs.dotcloud.com/guides/environment/#adding-environment-variables

0

Примечание 1: Предположим, что простой способ заключается в создании псевдонима в мерзавца, который будет автоматически выполнять Rsync:

git config alias.<yourcommand>; !<your script> 

Пример:

git config alias.sendtocloud "! echo 'rsync' && rsync && echo pull && git pull" 

, а затем попробовать:

git sendtocloud <continue parameters as after git pull > 

Если вы хотите иметь чистый раствор git и не менее 3 реакторов:

  • [Y], наша: (? Database.yml, не имеет значения)
  • [С] ollaborator: (без database.yml)
  • [D] otCloud (с оригинальным databse.yml)

Так есть дополнительные вопросы:

  1. Как вы делитесь хранилищу с сотрудником? (тянуть или нажимать и кем?)
  2. ИЛИ у вас есть какой-то голый репозиторий для обмена данными (разделяемый [Y] и [C])?
  3. Правильно ли, что вам не нужно иметь database.yml в вашем репо?

ПРИМЕЧАНИЕ 2: вы можете использовать git-крючки, чтобы делать почти все, что хотите. Например, вы можете управлять несколькими временными ветвями до обновления и т. Д.

ПРИМЕЧАНИЕ 3. Если вам не нужна база данных.yml в вашем репозитории, вы можете создать посередине голого репо до [y] и [D] с «обновлением» для переадресации изменений на [D]

 Смежные вопросы

  • Нет связанных вопросов^_^