我无法理解如何处理以下情况:
- 功能 A 承诺
master
为 commitA
。 - 我们已准备好发布
v1.0.0
,因此我们将提交标记A
为v1.0.0
,并从中创建一个发布分支rel-1.0.x
用于 QA。 - 功能 B 承诺
master
为 commitB
。 - QA 批准
v1.0.0
,我们部署和删除rel-1.0.x
分支。 - 我们已准备好发布
v2.0.0
,因此我们将提交标记B
为并从中v2.0.0
创建一个分支用于 QA。rel-2.0.x
- 在生产中发现了一个错误 (
v1.0.0
),必须立即修复和部署。
在这一点上,我不确定我们应该如何处理。如果错误在主干中,我们可以从主干创建一个修补程序分支,修复错误并合并到主干中。然后,从创建一个rel-1.0.1
分支v1.0.0
,从主干中挑选修复,将其标记为v1.0.1
并部署。
现在我觉得奇怪的是,v1.0.1
提交不是原样的,master
因为它是从分支中挑选出来并在分支master
中标记的。rel-1.0.1
此外,如果还需要修复,rel-2.0.x
那么我们应该如何处理呢?我们是否应该再次从主干中挑选错误修复并将其标记为不同的版本,例如v2.0.1
?
这是我将要执行上述操作的那种图表(请注意,v1.1 代表上述文本的 2.0 版本,并且它是Second feature A fix
在准备v1.1
发布时发生的。):