GIT: Каким наилучшим образом решаются постоянно возникающие конфликты при слиянии веток develop и production?
===============================================================================================================

 Вопрос наверняка имеет очевидный ответ, на который мне просто не удается правильно составить поисковый запрос. Тем не менее, ситуация такова:  
  

Есть две ветки, в одной из них ведется разработка продукта, в другой - хранится версия для выката на рабочий сервер. Очевидно, что эти две ветки имеют разные настройки окружения, возьмем как пример самое простое - в файле конфигурации в случае ветки для разработки указано окружение local, в файле для рабочего сервера - production.  
  

Соответственно, при слиянии этих двух веток будет постоянно происходить замена значения этой переменной с production на local.  
  

Так вот, вопрос: каким образом выстраивается рабочий процесс, дабы этого не происходило? Да и вообще, как верно производить слияние, если в двух ветках репозитория должны быть тем не менее всегда какие-то постоянно присутствующие различия?  
  
**Уточнение:** различий, конечно же, намного больше, так что не интересует какой-то ручной процесс, желательно именно выстраивание рабочего процесса таким образом, чтобы о данной проблеме не болела лишний раз голова. 

 Решение, вроде, вполне очевидное - выносите все настройки в (конфигурационные) файлы, которые игнорируются git-ом. Делайте шаблоны этих файлов (оставляем в git), а в README проекта описываем процедуру их копирования в нужное место и "донастройки" (какие переменные нужно изменить, какие добавить/убрать и т.д.). На конкретной площадке (production, stage, test, dev, local etc) свои настройки, все логично  
  

Еще как вариант - использование environment-переменных (переменных окружения), тогда файлы как таковые вообще не понадобятся. Но:  

- их поведением часто сложно управлять, и, как следствие, сложно отлавливать ошибки при неверных значениях  

- все равно их нужно где-то прописывать (bash-скрипты, .htaccess и т.д.), но теперь уже в разных местах  

- все равно лучше задокументировать, хотя бы чтоб самому потом не забыть :) 

[Как слить ветки, но не сливать несколько фалов?](https://toster.ru/q/382545) 

> Очевидно, что эти две ветки имеют разные настройки окружения

нет. Различие должно быть только в одной переменной, в которой записано в каком сейчас окружении работает приложение  
  

Переменную окружения можно установить `export foo=bar`  
  

АПД: все "секретное" не должно попадать в репу и также должно быть в переменных окружения