Я бы не стал управлять этими файлами с помощью git.Я бы поместил их в ваш .gitignore
, чтобы git игнорировал их, и поместил файлы шаблонов (например, foo.template
для файла с именем foo
или, возможно, template/foo
) в git.Затем, когда вы клонируете репозиторий, вы можете скопировать их и изменить, и git не будет ничего делать с копиями, продолжая управлять шаблонами.Если у вас есть несколько таких файлов, вы можете предоставить сценарий или создать правило или что-то в этом роде, чтобы заполнить все ваши файлы конфигурации из их шаблонов, чтобы упростить настройку.
Лучший дизайн будетбыть отделить конфигурацию проекта от локальной конфигурации, или иметь значения по умолчанию на уровне проекта, которые могут быть переопределены в отдельном локальном файле.Файлы уровня проекта фиксируются, локальные файлы игнорируются, и они оба используются.Возможно, некоторые настройки конфигурации имеют смысл только для проекта, а некоторые имеют смысл только локально, и в этом случае вы просто извлекаете соответствующую настройку из соответствующего файла;или вы можете использовать настройки проекта в качестве значений по умолчанию и позволить локальной конфигурации переопределить значения по умолчанию.Таким образом, вы можете обновить настройки проекта, которые являются общими, для всех сразу, не мешая локальным настройкам людей.Конечно, это зависит от наличия контроля над форматом настроек;если вы используете сторонний инструмент, который берет свои настройки в определенном формате, все в одном файле, вам, вероятно, придется использовать шаблонный подход.