具有多个并行发布分支的 Git-flow 和 master

标签 git git-flow

我们正在尝试采用 successful Git branching model由 git-flow 实现。现在,我们正在研究至少两个发布分支,一个用于最新的稳定版本,一个用于下一个(“预览”)版本。我不明白的是为什么所有版本似乎都“线性化”到 master 并在那里标记。为什么不在他们的发布分支中标记发布?为什么是主人?或者为什么要使用 develop 分支而不使用 master

最佳答案

在 git-flow 模型中,你的“最新发布”版本实际上映射到 master,而你的“预览版”映射到 git-flow release 分支.它从 develop 分支出来,最终在实际发布时 merge 到 master 中。然后这将成为您的“最新版本”,您通常只会修复该版本的错误,使用 git-flow hotfix 分支。这样,您的 master 始终代表您最新发布版本的最稳定状态。

如果你想修复旧版本的错误或在那里进行任何其他开发,你将从 master 中的适当提交中 fork 一个 support 分支(你将有 < strong>所有 曾经在那里创建的版本)。 support 分支仍处于实验阶段(according to the docs)并且没有很好的文档记录。但是从命令行帮助可以看到:

usage: git flow support [list] [-v]
       git flow support start [-F] <version> <base>

这些分支刚刚开始,并不打算 merge 回 masterdevelop。这通常很好,因为对“旧”版本的修复或客户要求在“旧”版本中实现的功能不能或不应返回到 master。如果您仍然认为,您想将修复程序移植到您的主要开发线(由 masterdevelop 表示),只需启动一个 hotfix,挑选您的更改并完成 hotfix

关于具有多个并行发布分支的 Git-flow 和 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16562339/

相关文章:

java - 由于删除了 java.orig 文件,tomcat 无法发布

git - 如何在git中完全删除一个头部分离的分支?

当 origin/develop 领先于我的本地开发分支时,git flow release 开始

git - 开发一个功能发现其他功能有bug怎么办?

gitbranch 和 checkout 什么都不做?

git - 使用 Git 特性分支工作流,什么时候更新 master 分支?

git - 在 gitflow 模型中创建修补程序分支或功能分支

Git LFS 不适用于 TeamCity 代理

git - 如何获取足够的提交以在浅克隆中进行 merge

git - 使用 git clean 删除未跟踪的目录但不删除该目录中的子目录