对于我的应用程序的每个环境,我有以下分支。Dev(Dev Env)、UAT(UAT Env)、Prod(Prod Env)、Master分支(与Prod Branch同步,用作黄金映像)
我目前的方法是,每当需要一个新特性时,我们从Master创建一个新的特性分支,然后合并到Dev,一旦Dev签署,我们就将特性分支与UAT合并,然后合并到Prod。
问题:
- 到目前为止,我的三个环境都是同步的,因此这种方法可以无缝地工作
- 现在,最近我们已经改变了我们现有的功能之一,让我们称之为ABC
- 因此,我们从Master创建了一个新的bug修复分支,修复了bug,然后将其与Dev合并。
- 合并时,我们面临着冲突,因为我们将abc改为ABC
- 现在我们有了一个新的特性,所以按照实践,我们从Master那里拿了一个分支,做了一些改变,当与Dev合并时,我们再次面临冲突
将重复此操作,直到Dev上可用的错误修复未在Prod上发布,并且主分支更新。
我该如何解决这个问题?这样每次合并Dev都不会给我带来任何冲突。
1条答案
按热度按时间lymnna711#
在与Dev合并时,我们再次面临冲突
这就是
git rerere
派上用场的地方。我在“Are there any downsides to enablinggit rerere
?”中提到过它(以避免每次重基都要解决它们)。这个想法是,从
master
创建的新特性分支在合并到Dev
时将受益于rerere
训练。它将以可预测的(和自动化的)方式解决已知的冲突。