Ответ 1
Это называется фильтр фильтра содержимого, и он позволяет объявлять в файле .gitattributes
(и только для вашей конфигурации тип файлов) a smudge script, который будет автоматически при оформлении заказа:
- объединить файл шаблона файла конфигурации (
config.tpl
) - с правильным значением файла конфигурации (
config.dev
,config.prod
,...) - чтобы создать не-версированный файл конфигурации (частный файл)
См. " Настройка Git - Git Атрибуты":
echo '*.cfg.tpl config' >> .gitattributes
git config --global filter.config.smudge yourScript
При таком подходе вам не нужны подмодули, но вы можете создать столько конфигурационного файла, который вам нужен, в зависимости от вашей среды, например, вашего ветки:
Немного как в "Найти Git имя ветки в post-update hook", ваше smudge script может узнать, в какой ветке он выполняется в настоящий момент:
#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)