我们使用Gitflow进行Web构建,我对如何hotfixes
工作有疑问.但首先我应该解释一下,我们并没有完全使用正常的Gitflow工作流程.
我明白,通常你会分支你的features
,他们会develop
在完成时合并,你会创建你的release
,release
合并到master
你并部署它,作为一个真正的"版本化版本".
但是,由于这是客户端工作,我们不会执行"发布",而是在需要时部署功能,因此我们的feature
分支的更改会master
在临时基础上合并.
这确实会引起问题,因为feature
分支从分支开始develop
就超前了master
; 合并这些feature
分支到master
会合并其他的改变到master
的变化(即存在于develop
在当时feature
是支链的都还尚未master
).我们知道这不是Gitflow的设计方式,但我们需要某种分支模型,所以我们(有点)通过提交提交而不是合并分支来解决这个问题.
所以,我理解这些问题,我不相信他们正在为我现在的问题做出贡献,但为了以防万一,这就是我们使用它的方式.不过我的问题是:
hotfixes
应该怎么合并?
在我看来,情景是:
master
是"生产"
develop
领先于 master
然后,您想要修补hotfix
分支的即时问题.在Gitflow中,这个分支来自master
,当你完成时hotfix
,它会被合并到master
和 develop
但这怎么不会造成大问题呢?
最近,我尝试创建一个hotfix
在一个文件中更改单行副本.我完成了hotfix
,并且更改合并到master
没有任何问题,但是当它厌倦了合并时develop
,它创建了一个巨大的35文件差异,在我没有触及的文件中有几个合并冲突,由于develop
和之间的差异master
.
我明白,这是因为你被合并hotfix
的分支,其本身分支master
,进入develop
,没有特别的变化或单一犯,让我明白为什么有大量的合并提交/冲突.
然而,我不明白的是,考虑到这一点,hotfixes
"在现实世界中"是如何工作的,考虑到它们是分支的master
,然后合并到一起develop
,这在设计上是先行的master
.这就是为什么我不认为我们使用Gitflow的方式是问题,因为无论我们的非标准部署过程如何develop
都会领先master
- 我不明白为什么这不会引起巨大的麻烦,无论项目如何或确切的工作流程
什么似乎没有意义,我是,你hotfix
可以像改变这样简单的true
一个false
或更改电子邮件地址,不管,而是要让它进入master
,你可能有一个巨大的集合合并冲突的搏斗.这只是标准行为吗?这是如何hotfixes
工作的,如果你必须坐下来解决一场大规模的合并冲突,那么就这样吧?提交提交会不会更容易吗?看起来似乎存在如此巨大的空间来为可能发生如此微小的变化引入错误 - 您正在处理两个分支,这些分支可能是几个月和几百个相互之间的提交.
我可能只是误解了这个过程hotfixes
,但如果我是,我不确定是哪一点.