何时在git分支模型中递增版本号

3

目前使用的是成功的Git分支模型,效果非常好。

我不太清楚如何处理在创建发布分支时完成的修复。如果这是一个普通的热修复,我会从主分支中创建一个分支,完成修复,然后合并到主分支和发布分支。但是,如果这是要纳入当前发布的修复,我应该从发布分支中创建一个分支,然后使用合并对象合并回来,还是直接在发布分支上修复错误?我每完成一个在发布分支上的修复,都需要增加版本号吗?


将修复程序应用于主分支并将其合并到发布分支中有什么问题吗? - Bobby Russell
1
根据 Git Flow 的规定,更改从 master 分支永远不会直接流向发布分支。 - jub0bs
1个回答

1
我不太清楚如何处理在创建发布分支时完成的修复。根据Git Flow模型,热修补是由于需要立即对现有生产版本的不良状态进行操作而产生的。如果在处理发布分支时急需一个热修补(例如高安全风险),以至于不能等待发布分支完成,Git Flow规定您应执行以下操作:唯一的例外情况是,当存在发布分支时,热修补更改需要合并到该发布分支中,而不是develop中。当发布分支完成时,反向合并bugfix将最终导致bugfix也被合并到develop中。(如果develop中的工作需要这个bugfix,并且不能等待发布分支完成,那么现在就可以安全地将bugfix合并到develop中。)

谢谢你纠正我,我完全忘记了那个例外。


然而,如果这是要合并到当前版本的修复,我应该从版本分支中分支出去再合并回来,还是直接在版本分支上修复错误?据我理解,既然你写道“如果是常规热修复”,那么所讨论的修复并不是非常紧急,也不符合热修复的条件。在这种情况下,为什么不直接在版本分支上进行呢?毕竟,根据Git Flow模型,这就是版本分支的用途:版本分支支持新生产版本的准备工作。它们允许在最后一刻进行微调和修正细节。此外,它们还允许进行小的错误修复,并准备发布的元数据(版本号、构建日期等)。

我在发布分支上完成每个修复时,是否需要增加版本号?

不需要。版本号一旦创建发布分支就已经确定了。在后续修复过程中,不应该导致版本号的更改。


我认为你在合并热修补程序的位置上缺少了一个关键的异常处理:http://i.imgur.com/XCwmhu9.jpg -- 不过,你提到版本号和在发布分支上提交代码的观点非常好。谢谢。 - diplosaurus
@diplosaurus 你说得对,感谢您指出。请查看我的修改后的答案。 - jub0bs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接