Наличие разных веток для prod и test может быть хлопотным и не имеет особого смысла. Обычно ветки используются для исправлений / новых функций, которые могут быть объединены с основной (основной) ветвью после того, как мы уверены, что это новое исправление / функция работает, а также не вызывает никаких побочных эффектов (т.е. все тесты проходят) в application.
Таким образом, чтобы иметь возможность запускать тесты, вам нужно объединить ту же функцию с вашей веткой тестов, а затем, когда они пройдут эти тесты, слить ее с вашей веткой prod. Вам также придется отменить тестовую ветку в случае, если ваши тесты не пройдут, чтобы она постоянно синхронизировалась с веткой prod.
В качестве альтернативы вы можете использовать обе конфигурации в одной и той же ветке ie (master) и позвольте вашему приложению работать с вашей конфигурацией теста или конфигурацией prod, которые должны использоваться на основе установленной вами переменной среды . Также рекомендуется gitignore в конфигурации prod, так как в некоторых случаях она может содержать секреты, такие как ключи API и идентификаторы клиентов.
Чтобы иметь тот же [именованный] конфигурационный файл, я бы сказал, что вы скорее сделаете что-нибудь например, config.dev, config.test, config.prod (gitingnore).
Также узнайте о потоке git, который является отраслевым стандартом и используется многими. (https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)