Наилучшая практика - Git + Автоматизация сборки - Сохранение конфигураций отдельно

Поиск наилучшего подхода к тому, чтобы мои файлы конфигурации были разделены, но не вводите дополнительные шаги для новых разработчиков, настраивающих свои среды.

Я предполагаю, что для выполнения этой работы достаточно субмодуля, но тогда как бы я мог легко переключаться между конфигурациями в зависимости от задачи, а также регулярно вставлять конфигурацию DEV, вытягивать ветвь PROD конфигурации repo во время сборки?

Нужно быть:

  • Легко и безболезненно для новых разработчиков.
  • Файлы конфигурации PROD должны быть доступны только для выбора пользователей + сборщик.

Спасибо заранее.

Ответ 1

Это называется фильтр фильтра содержимого, и он позволяет объявлять в файле .gitattributes (и только для вашей конфигурации тип файлов) a smudge script, который будет автоматически при оформлении заказа:

  • объединить файл шаблона файла конфигурации (config.tpl)
  • с правильным значением файла конфигурации (config.dev, config.prod,...)
  • чтобы создать не-версированный файл конфигурации (частный файл)

enter image description here

См. " Настройка 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)