当主人还没有准备好发布时如何部署错误修复?
How to deploy a bug fix when a master is not ready to be released?
考虑合并到 master 部署到 QA 并创建标签部署到 prod 的持续交付策略,我们如何修复 prod 中的错误但不发布 master 中的最后一次提交(如下所示的提交 Y)?
给出以下 git 日志
master
- commit Y
- commit X = tag 1
在“标签 1”上发现了一个错误,因此我们从该提交分支,修复它并合并回主服务器。
master
- commit Z with the fix = tag 2
- commit Y
- commit X = tag 1
假设此 Merge 提交将位于顶部,如何确保 commit Y
在尝试发布修复时未被部署?
事实证明你已经直观地解决了你的问题,但是你的图表没有显示合并提交所以它在你的问题中并不明显。
如果您从 Tag-1 分支,创建一个带有修复的提交(提交 Z
),并在该提交上创建 Tag-2,然后将其合并回 master
您的图表将是:
MC (master)
| \
Y \
| Z (Tag-2)
| /
| /
X (Tag-1)
|
|
只要您部署 Tag-2
而不是 master
,您就会实现您的目标。由于您的工作流程是从 master
上的标记提交发布到 Prod,如果您决定还想部署提交 Y,那么您可以将 Tag-2
放在合并提交 (MC
) 上Z
个。或者,稍后在进一步测试后,您可以在 MC
上添加 Tag-3
以全部部署。
附带说明一下,当您在某个分支上创建提交 Z
时,您实际上为该分支命名并不重要,但从概念上讲,您可以将其视为 hotfix
分支.
考虑合并到 master 部署到 QA 并创建标签部署到 prod 的持续交付策略,我们如何修复 prod 中的错误但不发布 master 中的最后一次提交(如下所示的提交 Y)?
给出以下 git 日志
master
- commit Y
- commit X = tag 1
在“标签 1”上发现了一个错误,因此我们从该提交分支,修复它并合并回主服务器。
master
- commit Z with the fix = tag 2
- commit Y
- commit X = tag 1
假设此 Merge 提交将位于顶部,如何确保 commit Y
在尝试发布修复时未被部署?
事实证明你已经直观地解决了你的问题,但是你的图表没有显示合并提交所以它在你的问题中并不明显。
如果您从 Tag-1 分支,创建一个带有修复的提交(提交 Z
),并在该提交上创建 Tag-2,然后将其合并回 master
您的图表将是:
MC (master)
| \
Y \
| Z (Tag-2)
| /
| /
X (Tag-1)
|
|
只要您部署 Tag-2
而不是 master
,您就会实现您的目标。由于您的工作流程是从 master
上的标记提交发布到 Prod,如果您决定还想部署提交 Y,那么您可以将 Tag-2
放在合并提交 (MC
) 上Z
个。或者,稍后在进一步测试后,您可以在 MC
上添加 Tag-3
以全部部署。
附带说明一下,当您在某个分支上创建提交 Z
时,您实际上为该分支命名并不重要,但从概念上讲,您可以将其视为 hotfix
分支.