Включить/использовать файл в Git, но игнорировать последующие изменения

-2 mowgli [2014-08-03 19:29:00]

В Git repo у меня есть папка с файлом настроек базы данных. Содержание в нем зависит от локальной настройки БД (хост, имя базы данных, имя пользователя, пароль и т.д.).

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

Как это делается?

Сначала разрешить загрузку/включение файла, а затем добавить ignore в эту папку/файл?

git gitignore


2 ответа


1 Решение Matthew Strawbridge [2014-08-04 11:45:00]

Добавьте пример файла настроек в репозиторий с другим именем (например, database.settings.example) с помощью только заполнителей, таких как PASSWORD, вместо реальных данных. Это должно облегчить воссоздание локальных настроек, если они затеряются.

Не добавляйте файл реальных настроек в репозиторий. Используйте .gitignore чтобы исключить реальный файл настроек. Таким образом, все разработчики могут создавать свою собственную версию и не беспокоиться о том, чтобы случайно ее проверить.


0 gravetii [2014-08-03 20:31:00]

Вы можете добиться этого, попросив git временно не сохранять никаких изменений в этих файлах.

Вы можете сделать это, сначала нажав версию файла, а затем выполнив git update-index --assume-unchanged <file>. Это попросит git временно запретить отслеживание этого файла. Любые изменения, внесенные в этот файл, будут игнорироваться git. Если вы хотите снова отслеживать изменения в файле, вы можете сделать git update-index --no-assume-unchanged <file> который начнет отслеживать изменения снова.