我一直在考虑使用 git flow,但围绕修补程序的原始设计似乎有一个漏洞。
假设您已经发布了多个版本 - 您的 master 有 0.1、0.2、0.3、1.0、1.1、2.0 等的标签。您在 0.2 中发现了一个错误,并希望在 0.2.1 版本中进行修复。发布标签在哪里?它不能进入master,因为那是2.0版。它只是在修补程序分支上吗?然后可以使用该分支以类似的方式创建 0.3.1 和 1.1.1 版本,使用 1.1.1 修补程序分支上的标签,并合并到待处理的版本分支中吗?
即使原始的 gitflow 从未“升级”过支持分支,您也会遇到另一个问题。原始的 git-flow 不允许您从支持分支开始创建修补程序。
首先,我假设您在 xyz 中使用Semantic Versioning 2.0.0
按照我的看法回答您的问题:您使用支持分支进行发布,现在的问题当然是您将保留和创建多少个支持分支。就个人而言,如果您支持旧版本,我会为 xy 版本保留分支。
标签将继续在支持分支上。
如果需要在整个版本中一直实施修补程序,有两种方法可以做到这一点:
如果修补程序只是一个提交,我想你可以做一个 Cherry Pick,如果它更多,我会去创建补丁git format-patch
并将git am
它们添加到其他分支。
现在再次能够从支持分支创建修补程序/错误修复/发布分支,您需要使用gitflow AVH 版(免责声明:我开发了 gitflow AVH 版)