Git-flow和master具有多个并行释放分支

Mot*_*Mot 75 git git-flow

我们正在尝试采用git-flow实现的成功的Git分支模型.现在,我们正在开发至少两个发布分支,一个用于最新的稳定版本,另一个用于下一个("预览")版本.我不明白为什么所有版本似乎都"线性化"到主人并在那里标记.为什么不在发布分支中标记发行版?为什么大师呢?或者为什么开发分支而不是使用master呢?

mst*_*rap 69

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

如果你想修复旧版本的bug或者在那里进行任何其他开发,你将从support适当的提交中分叉一个分支master(你将在那里创建所有版本).support分支仍然是实验性的(根据文档)并没有很好的记录.但是从命令行帮助中可以看到:

usage: git flow support [list] [-v]
       git flow support start [-F] <version> <base>
Run Code Online (Sandbox Code Playgroud)

这些分支刚刚开始,并不打算合并回master也不是develop.这通常很好,因为修复"古代"版本或客户要求在"古代"版本中实现的功能不能或不应该回归master.如果您仍然认为,您希望将修复程序移植到主开发线(由master和表示develop),只需启动一个hotfix,樱桃选择您的更改并完成hotfix.

  • 这不涉及从测试到质量保证到生产的缓慢管道.可能有两个(甚至更多,但现在只说两个)发布分支打开,每个分支在该管道的不同阶段,每个都需要修复测试中发现的错误.然后,_develop_分支将是为尚未创建分支的版本累积功能的地方.在这种情况下,对版本n-2的修复最终会合并开发,但会跳过版本n-1,至少遵循标准git流程.这将导致n-1的回归,最终在版本n上修复 (13认同)
  • 关于此“支持”分支概念的精彩文章:https://gitversion.readthedocs.io/en/latest/git-branching-strategies/gitflow-examples/#support-branches (2认同)
  • 为什么发布分支是从开发中“分叉”出来的,而不只是从开发中“分支出来”的? (2认同)

Sar*_*ien 8

看起来像一个心理模型,有点过分强调分支.我同意,你可以只标记你发布的提交,而不是将它们合并回master.

不过,画面很漂亮.将所有内容合并回主服务器可以按时间顺序清楚地指示发布,而不是在整个图表中散布版本标记.

不过,我认为这个模型不适用于旧版本中的错误修正.它弄乱了整齐的排序.

  1. 假设我们已经发布了1.0.1版本以及之后添加的功能并发布了1.1.0.
  2. 我们在1.0.1中发现了一个错误,并希望在两个版本中修复它
  3. 我们必须在1.1.0之后在master中添加1.0.2然后直接在(或之前)1.1.1添加.

回答你的问题:我认为这是一套规则,在某些情况下会产生一个简单的心理模型.从纯粹的技术角度来看,并非所有规则都有意义,但这并不会使它们变坏.心理模型对人类有益.