Вариантов множество.
1. делайте настройку для каждой группы использования (production, testing, dev, ...) и просто в коде определяйте какой блок настроек использовать в зависимости от окружения.
Не всегда целесообразно раскрывать данные (о паролях, логинах и прочих настройках которые используются в production) тем кто работает с кодом в других окружениях (dev, testing, ...) По этому:
2. хранить настройки для production и testing отдельно (можно во втором репозитарии) и при деплое загружать данные от туда.
3. вынести настройки за пределы проекта, в результате настройки остаются, а проект обновляется. Обновление настроек на каждой среде - отдельная задача. При автоматизации развёртывания нужен комплект настроек под каждую среду, в идеале сам код проекта ничего об этом знать не должен и должен корректно стартовать с любыми входящими конфигами.