git - 为什么在使用 GitFlow 时需要将发布分支合并到开发分支中?
问题描述
我正在学习 Gitflow 工作流。下面是一个关于 Gitflow 工作流的示例图。
我认为A,B,C和D的内容是一样的,对吧?
我认为 A 合并到 C 然后 C 合并到 D 是可以的,但是为什么需要 C 合并到 B ?你知道A和B是一样的!
图片
解决方案
您关于 A、B、C 和 D 相同的断言是不正确的(至少在此图的上下文中)。
在 A 和 C 之间,您会看到有一些提交。这是意料之中的。在“测试”发布分支时,可能会发现一些需要在发布之前纠正的错误。或者可能需要一些维护工作,例如更新源代码中的版本号,或类似的。
无论哪种方式,都会在发布分支上进行更改,因此,一旦完成,必须将这些更改带回开发分支,以便它们可以前进到下一个版本。
现在,说了这么多,有时可能在发布分支上没有进行额外的更改,因此,合并回开发分支是不必要的。在这些情况下,如果你尝试将 release 分支合并回 develop 分支,git 实际上会告诉你无事可做,因此不会发生合并。
这记录在有关使用 GitFlow 的原始文章中:
https://nvie.com/posts/a-successful-git-branching-model/#release-branches
发布分支支持准备新的生产版本。它们允许在最后一分钟点 i 和交叉 t。此外,它们允许修复小错误并为发布准备元数据(版本号、构建日期等)。通过在发布分支上完成所有这些工作,开发分支就可以接收下一个大版本的功能。
推荐阅读
- python - 遍历列表并在 Python 中找到匹配项
- tensorflow - Keras 检查点未保存到谷歌云存储桶
- hsqldb - 升级后 HSQLDB 命令行关闭不再起作用
- javascript - 在反应中更改循环内的especify css元素
- flutter - 在 Flutter 中将带有图像的对象本地存储在磁盘上的最佳方法?
- r - 如何通过 R 中的 dplyr 逐行选择 tibble 中的随机元素?
- java - Unicode ICU 而不是 java.time.DateTimeFormatter 应该用于国际日期和时间
- javascript - React 不更新状态的问题(钩子)
- php - TypeError: 传递给 PHPUnit\Framework\Assert::assertFileExists() 的参数 1 必须是字符串类型,给定 null,
- c - C编程练习