Ответ 1
Вы можете просто убедиться, что ваши файлы конфигурации для dev и master называются по-разному, с их собственной историей. Таким образом, слияние никогда не перезапишет ничего.
Затем вы можете выполнить версию и отслеживать:
- a
config.tpl
(файл шаблона со значениями заполнителя). - два конфигурационных файла, один для dev, один для мастера
- a script может взять файл конфигурации и файл шаблона и создать файл
config
(который остается невоспроизводимым, закрытым) - a
.gitignore
, который игнорирует полученный сгенерированный файлconfig
- a
.gitattribute
Объявление фильтра содержимого smudge (см. ниже)
Генерация файла конфигурации автоматизирована с помощью фильтра фильтра содержимого, используя .gitattributes
.
(изображение из "Настройка Git - Git Атрибуты" из Pro Git book "))
Как только вы объявите, что этот драйвер содержимого в вашей локальной конфигурации, он автоматически, на git checkout
, сгенерирует ваш файл config
для вас.
Полный пример в Лучшая практика - Git + Автоматизация сборки - Сохранение конфигураций отдельно.