Как хранить конфиги в репозитории?
====================================

 Есть репозиторий в котором хранятся файлы сайта.  

  

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

  

Речь идет о настройках авторизации в MySQL, удаленных FTP и прочего.  

  

Вопрос — подскажите как лучше организовать хранение обоих конфигов для продакшена и для серверов разработчиков. 

 Я делаю так: в git-репозитории хранится конфиг для разработчиков или пустой конфиг. Конфиг для продакшена хранится вне git на сервере. При деплое просто делается симлинк. 

 Сделать два файла — config.ext и config.local.ext, под контролем версий держать только первый, второй положить в игнор-лист.  

Научить приложение читать оба файла с приоритетом настроек из второго.  

Во втором переопределять только локально отличающиеся настройки типа паролей.  

Тогда при добавлении новых настроек или изменении старых не надо будет трогать «локальные» конфиги вообще. 

 Что мешает использовать отдельный репозиторий для конфигов с ветками для продакшна и других, а подключать в основной репозиторий с помощью git submodule? Конечно, это будет удобно, если вы уже не используете submodule, тогда нужно быть более аккуратным при запуске `git submodule update`. 

 config.default для настроек по умолчанию и пустой config.local для локальных, config.local в .gitignore. Приложение сначала читает config.default, а потом *некоторые* настройки переопределяет из config.local Это если не пользуюсь фреймворком в котором это проблема уже решена.