Mat*_*ski 8 git merge branch hotfix git-flow
我们使用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,但如果我是,我不确定是哪一点.
我不明白为什么会有很多冲突。合并到的更改develop只是最新的修补程序,也可能是以前的修补程序(如果它们由于某种原因未依次合并)。
(虽然我宁愿将它们合并hotfix到master,然后将它们合并master到develop,而不是直接合并hotfix到develop,只是为了避免纵横交错的合并,但应该不会有太大变化)