Подтвердить что ты не робот

Есть ли способ настроить удаленные специфические .gitignores?

Есть ли простой способ настроить разные файлы .gitignore для разных пультов? У меня есть хранилище, которое я подталкиваю к Героку и Гитубу. Мне нужно database.yml для Heroku, но не хочу, чтобы какая-то информация была направлена ​​в Github. Поэтому для каждого из пультов мне нужен другой файл .gitignore.

Я пробовал иметь две отдельные ветки, которые игнорируют database.yml, и тот, который этого не делает. Проблема в том, что когда я просматриваю ветку герой и возвращаюсь в свою ветку github, весь файл database.yml исчезает.

Любые советы?

4b9b3361

Ответ 1

Я ничего не знаю о требованиях к Heroku - надеюсь, справедливость справедлива, и вы можете просто избежать этой проблемы. Если вы не можете или кто-то другой найдет того, кто не может...

Если вы хотите, чтобы два пульта были зеркалами (имеют одни и те же фиксации), они должны по определению иметь одинаковые файлы в этих коммитах. Таким образом, у вас есть два варианта: иметь file-for-repo-B во всех репозиториях, даже если они им не нужны, или использовать слегка грязный рабочий процесс с двумя ветвями: master и for-repo-B. Единственное различие между двумя ветвями - это фиксация, касающаяся file-for-repo-B; ветвь for-repo-B всегда будет сливаться с master (но никогда не наоборот!). Теперь у вас просто другая ветка проверена в репо B, и все хорошо.

Ответ 2

Не помещайте информацию о базе данных в database.yml. Вместо этого используйте переменные среды Heroku.

Ответ 3

Вы должны выполнить следующее:

  • database.yml с только переменными в нем и
  • a script, способный заменить эти переменные на правильные значения в зависимости от удаленного сервера, на котором развертывается database.yml.

Затем вы используете script как драйвер фильтра атрибутов smudge:

smudge content filter

Каждый раз, когда вы проверите (и создаете рабочее дерево) на удаленном сервере, будет выполнен script и соответственно изменит переменные, предоставив вам пользовательский database.yml файл.
Если одному из пульта не нужен этот database.yml файл, он все равно может быть там, но опустошен смазкой script.