Gitflow: 修复即将发布的版本中的错误。

3
我最近开始使用gitflow概念,并且对release-*分支有疑问。
每当我创建新的release(-branch)时,我会进行某种验证以验证软件的基本部分仍按预期工作。偶尔,这会揭示出一些需要修复的错误,然后才能将此代码接受为新的稳定版本。
如果这些错误有简单的解决方案,我可以在该release-*分支上进行单个提交,合并到develop分支,然后完成。
然而,当问题比较复杂时,我不太确定该怎么做。
  • 我不能使用特性分支:
    那些从develop开始,而自发布以来,develop已经发生了变化。

  • 我不认为我应该使用热修复分支:
    我需要从发布分支而不是主分支(master)开始,并且我也不想将更改合并到主分支(master)中(至少在完整的发布得到适当验证之前)。

  • 我不认为我应该直接在发布分支上工作:
    这可能会在发布分支上产生有问题的代码(仍在开发中的代码几乎永远都不是好代码)。

也许我应该使用一个releasefix-*分支或类似的东西......?有什么建议吗?


1
基本上就是你想做的事情。如果你遵循Gitflow,那么你应该使用发布分支,如果你的错误修复非常大,就像你说的那样,它仍然应该从发布分支派生并合并回发布分支。 - CodeWizard
3
你也可以取消发布,修复开发中的错误并创建一个新的发布版本。 - choroba
如果发布版本创建后没有添加新功能,我可以这样做。但是,已经添加了新功能,并且它们不应该出现在此版本中,因此这不是一个选项。 - user1834095
2个回答

2

和同事小讨论后,我使用了一个新的分支类型:releasefix

这种类型的分支应该:

  • 基于当前的发布分支(假设只有在没有其他发布仍在等待时才会启动新的发布)
  • 合并到发布分支(其父级)和开发分支中
  • releasefix-前缀开头

我使用了一个新的分支类型,以确保不会将发布修复意外地合并到错误的分支中。


对于那些给这个答案点踩的人:请评论一下为什么你认为这是一个不好的答案,这样我也许可以从中学到东西。 - user1834095
我点赞了这个。这些建议听起来很合理。不幸的是,在SO上有一些误导人的人认为自问自答的Q&A应该达到更高的标准。 - jpp

2

对于在2018年查看此内容的人,现在有一个git flow bugfix命令可以这样使用:

git flow bugfix start [branchName]

对于这个问题,[branchName]将是发布分支。


1
我相信只有在安装了此处找到的git flow集合(https://github.com/petervanderdoes/gitflow-avh)后,这才能正常工作。 - MikaelHalen

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