我和同事们讨论了git-flow,他们提出了一个有趣的观点。为什么不从develop分支标记版本,而是从master分支呢?Master分支似乎只存在于标记版本的目的。也许当我阅读完整篇git-flow文章时,可能错过了一些明显的内容。
develop
上打标记,原因有两个: release
分支和 hotfixes
分支。
release
分支 - 一旦您从 develop
创建发布分支以准备发布,则会得到“发布候选版本”,该版本将仅接受有限更改,而主要开发分支 develop
可能会继续获得不适用于此版本的其他提交,例如为未来版本而进行的更改。即使您将来自 release
分支的更改合并到 develop
中,您仍将在 develop
上拥有其他提交,这些提交不适用于发布,也就是说,您不能在 develop
上打标记。还要注意,release
分支是临时分支,在发布后消失,而 master
(和 develop
)是长期存在的“永久”分支。
hotfix
分支 - 对于热修复也存在类似情况-您创建一个热修复临时分支(从上次发布开始),以允许您隔离哪些提交进入您的热修复版本(只有特定的错误修复)。release
分支和 hotfix
分支的最终提交打标记和/或使这些分支成为长期存在的分支,但是 git-flow 模型使用 master
来跟踪和连接发布。“Master”是一种惯例。如果你想建立一个不同的惯例,你可以这样做。使用“master”分支的想法可能适合你的目的,也可能不适合。
master
获取最新的生产代码(而不是找出最新标签的名称)。 - Oliver Charlesworth