Есть ли способ настроить удаленные специфические .gitignores?
Есть ли простой способ настроить разные файлы .gitignore для разных пультов? У меня есть хранилище, которое я подталкиваю к Героку и Гитубу. Мне нужно database.yml для Heroku, но не хочу, чтобы какая-то информация была направлена в Github. Поэтому для каждого из пультов мне нужен другой файл .gitignore.
Я пробовал иметь две отдельные ветки, которые игнорируют database.yml, и тот, который этого не делает. Проблема в том, что когда я просматриваю ветку герой и возвращаюсь в свою ветку github, весь файл database.yml исчезает.
Любые советы?
Ответы
Ответ 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.