Ваш вопрос в основном сводится к тому, «как я могу внести изменения в одну ветку, а затем, чтобы это изменение не распространялось, когда я сливаюсь в другую?».Это достаточно просто.На данный момент я предполагаю, что ваша производственная ветвь в основном представляет собой серию слияний, либо из ветви dev, либо из ветви исправлений.Так что, предположительно, git merge production
из вашей ветки разработки не внесет никаких изменений.Учитывая это, продолжайте вносить изменения в производственную ветку.Теперь передайте их.Теперь загляните в ветку разработки и запустите git merge -s ours production
.Это в основном означает «слияние с производством, но отклонение всех их изменений».Это создаст коммит слияния, но на самом деле не затронет вашу ветку разработки.
После того, как это слияние выполнено, вы можете теперь без беспокойства объединить вашу производственную ветку с разработкой (или, скорее, слить ветки исправлений), потому чтотеперь ваш производственный коммит уже «слился» с разработкой (несмотря на то, что изменения кода были отклонены).Поэтому объединение ветвей исправлений не приведет к использованию только производственного кода.
После того, как вы это сделаете, единственный раз, когда вам понадобится вернуться и снова применить этот трюк, это сделать большетолько изменения.Если вы вносите изменения в ветку разработки, которые вступают в конфликт с вашими производственными изменениями, при объединении разработки с производством вы можете пойти дальше и без проблем принять производственную сторону конфликтов.