Где хранить различия между dev и production веткой в git?

У меня есть проект, которым я управляю из git-репозитория. Мы используем стратегию ветвления progit (как описано в принятом ответе, здесь: Git branch strategy for small dev team), где одна ветка - производственная, а другая - ветка разработки/тестирования. Мы развертываем код с помощью fabric.

Когда мы готовы сделать новый производственный релиз с помощью git, мы объединяем ветку разработки/тестирования с производственной веткой, а затем развертываем производственную ветку с помощью fabric. Проблема в том, что между разработкой и продакшеном есть различия в коде - некоторые логотипы меняются, разные хосты/учетные данные БД, и все в таком духе. Я хранил файл .patch, содержащий различия, и заставлял fabric применять патч при развертывании производственной среды, но это работает не очень хорошо. В частности, это полностью проваливается, если какой-то код вокруг патча изменился - патч не применяется, и мое развертывание прерывается.

Я подумал, не стоит ли мне просто применить все свои изменения непосредственно к производственной ветке? Каковы недостатки этого?

Один конкретный случай использования, о котором я беспокоюсь, - это если нам нужно сделать горячее исправление. В настоящее время мы делаем это путем ответвления от производственной среды, вносим изменения, а затем объединяем эту ветку обратно как в разработку, так и в производство. Если производственная ветвь отличается от ветви разработки, могут ли эти изменения быть перенесены в ветвь разработки, когда исправление будет слито в разработку?

6
задан Community 23 May 2017 в 12:07
поделиться