git流向下/向左连续合并

git流向下/向左连续合并,git,merge,git-flow,Git,Merge,Git Flow,Git flow以以下方式确保对master和release的更改最终以develop结束: 修补程序从主程序分支并合并回开发。如果有 活动发布分支它在那里合并并且只传播到开发 一旦发行版被合并为master和Development 只有在发布完成后,对发布的更改才会合并以进行开发 完成 我想知道为什么要推迟到发布完成。 当主版本发生变化时,简单地将主版本合并为发行版和开发版,当发行版发生变化时合并为发行版和开发版,不是更容易吗 通过这种方式,我将立即在所有相关分支中反映更改,并且我不需要考

Git flow以以下方式确保对master和release的更改最终以develop结束:

  • 修补程序从主程序分支并合并回开发。如果有 活动发布分支它在那里合并并且只传播到开发 一旦发行版被合并为master和Development

  • 只有在发布完成后,对发布的更改才会合并以进行开发 完成

我想知道为什么要推迟到发布完成。 当主版本发生变化时,简单地将主版本合并为发行版和开发版,当发行版发生变化时合并为发行版和开发版,不是更容易吗

通过这种方式,我将立即在所有相关分支中反映更改,并且我不需要考虑在何时何地合并什么


我能想到的唯一解释是,git flow认为较不频繁的合并超过了跨分支拥有最新/同步的代码库的好处。

问题在于
开发的目的是:集成分支一起测试功能。
添加一个活动的
主机(及其修补程序)会破坏集成

这就是为什么我更喜欢使用gitworflow(即:您可以在
master
上重新设置任何
功能
分支的基础(热修复程序可以随时合并)。
通过重新设置
功能
分支,您可以在最新的
主程序
(及其修补程序)上重放更改

稍后,您可以将任何
功能
分支合并到“
下一个
”(
开发
分支)

最后,当您知道您为下一版本实际选择了哪个功能分支时,您可以(再次)将那些
功能
分支合并到
主功能

实际上支持您的请求。幸运的是,您的一个前提存在缺陷:

只有在发布完成后,才会合并对发布的更改以进行开发

事实并非如此。允许(并鼓励)您根据需要将
发行版
分支上的任何更改合并到
开发
中。在中,请注意,在完成之前,绿色的
发布
提交返回到
开发
。还有一个注释气泡,说明:

来自rel的错误修复。分支机构可能会不断合并回开发

在我的组织中,我们的发布分支可以使用大约7-10天,平均来说,我们在完成之前至少会将
发布
合并到
开发
中一次。因此,对于热修复程序,一旦它们被合并到
release
,只要有必要,就可以将
release
重新合并到
develope

作为相关的旁注,在完成
发布
时,我更喜欢将
发布
合并到
主版
,然后将
主版
合并到
开发
。(而不是将
发布到
开发
)这提供了两个好处:

  • 如果您没有将
    master
    合并到
    develope
    中,那么在修补程序之前有很多版本之后,当您最终创建
    hotfix
    时,当您将它合并到
    develope
    中时,会带来一堆位于
    master
    上的旧合并提交。这会增加混乱
  • release
    分支存在的任何时候,您都需要确保
    master
    中的所有内容都在
    release
    中。如果不这样做,您可能会意外地吹走一个修补程序,该修补程序是有人在
    master
    中完成的,但忘记了合并回
    release
    。也许最简单的自动化方法是检查
    master
    的头部是否在
    release
    中。但只有当您将
    主程序
    合并回
    开发
    (或返回到
    发布
    ,如果它存在并且您刚刚完成了一个
    修补程序
    ),这才是真的