git-flow:如何处理从更改到已发布分支的版本号

git-flow: how to handle version numbers from changes to released branch

我是 git 的新手,我工作的公司正在从颠覆转向 git。 我们正在考虑使用 git-flow 工作流,并且对它的工作方式相当满意。但是,我有一个关于发布分支的 "point" 发布的问题。让我解释一下我的意思。

我们决定创建一个版本,所以我们创建一个新的版本分支,比如 1.0。我们继续开发 "develop" 分支,添加新的功能分支等。 1.0 版本发布给我们的测试团队,他们发现了它的问题。据我了解,这些问题应该在发布分支 1.0 上修复,然后在测试完成后,所有更改都从发布 1.0 分支合并到 master 和 develop,并在 master 上标记为正式发布。

希望我没听错。

现在,在版本 1.0 的测试期间,我们可能需要向测试团队提供一个新的点版本,即 1.1,其中包括我们为解决他们的问题所做的更改。我们需要将其称为 1.1 以实现可追溯性,这样我们就可以确保他们实际测试的是 1.1。然而,git-flow 似乎表明这应该是一个单独的发布分支,即 1.1.

我想我要问的问题是如何将发布分支 "mark" 作为 1.1,即使它被称为 1.0。

鉴于我们以前只使用过 svn,我准备接受我可能会错误地提出这个问题,并且欢迎提供任何澄清。

您对版本号有误解。当你想发布 v1.0 时,总是只有一个版本 1.0,这是推送给 master 的最终版本,并带有自己的版本标签。

怎么去? (使用 git 流程帮助脚本)

  • 开发候选版本。
  • develop 分支到 release/vx.x。 (git flow release start [release])
  • 发布 rc:git flow release publish [release]
  • 做你的测试。其他所有开发人员现在都可以像往常一样跟踪发布分支。每个更改都将直接对 release/vx.x 进行(并合并回 develop 以便在下一个版本中继续工作)。不要从 release/vx.x 分支出来进行任何更改。此版本保留其编号直至其死亡。
  • 当您准备好测试和调试时,就是诞生的时候了:给 release/vx.x 上的最后(完成)提交一个版本标签并将其合并到 master (git flow release finish [release])
  • 使用标签推送:git push --tags

所以简而言之,一个版本拥有一个数字,而且只有一个。错误修复发生在这个数字上 before 给它一个标签(本质上是渲染一个 rc 发布版本)但是 after 创建编号分支。

此版本的修补程序,发生在 版本之后,将被推送到一个修补程序分支,并在以相同方式测试后合并到主分支和开发分支。

您始终可以手动完成这一切,但可以使用 git 流程帮助脚本。这些可以作为 Windows 安装程序或在几乎每个 Linux 发行版的默认存储库中使用。查看 git 流存储库 here

如需进一步参考,请参阅 git flow cheat sheet, a good documentation by Atlassian and this awesome graphic