Gitflow:将发布错误修复合并回 master 开发
Gitflow: Merging release bugfixes back to develop from master
我的问题是关于 gitflow 过程中一个非常具体的点(如记录 here)。
我已经将 release/1.2
中的错误修正合并到 master
中,并进行了适当的标记。
除了历史看起来如何,从 release/1.2
反向合并与从 master
反向合并到 develop
之间有什么区别。
两种方法我都试过了,在我这个简单、人为的例子中,我发现develop
没有什么不同,正如我所料。
这样做有危险吗?以后会不会遇到乱七八糟的问题?我错过了一些明显的东西吗?我怀疑答案可能与 master
中的其他功能有关,但目前应该不在 develop
中。
合并发布以开发:
合并master进行开发:
如果您将 master
合并回开发分支,您将在开发分支中拥有所有 merge branch release/x.y into master
合并提交,而在合并 release/x.y
分支本身时,您只会得到真正的改变。
当然,这或多或少是一个表面问题。但合并方向通常只是从 develop
到 master
,而不是相反。
除了所说的合并提交使您的 develop
分支混乱之外,没有真正的危险。如果你坚持流程,就不应该有 master
中不在 develop
中的功能,因为热修复和发布分支应该始终合并到你的 develop
以及在 master
.
I suspect the answer may be to do with other features that have gone into master
, but which should remain out of develop
for the moment.
来自 master
的提交无论如何都会进入 develop
并与下一个修补程序合并。如果有真正的代码更改,可能会出现意外结果并扭曲主机修复内容。
将稳定分支(git流程中的master
)合并到开发分支(git流程中的develop
)是各种git工作流程中的已知方式. Bbitbucket Server(Atlassian 出售的商业解决方案)具有 Automatic branch merging 的功能。 Git 项目本身总是将分支 maint
合并到 master
中,因为有一些错误修复。
所以我真的不明白为什么 gitflow 的作者选择了另一种方式。可能是没有真正的道理,只是一个偶然的决定。
Are there dangers to this? Am I going to encounter messy issues later on? Am I missing something obvious?
没有危险;没有问题;而且您不会遗漏任何东西。将 master
合并回 develop
是(恕我直言)稍微 更好的方法,并且没有缺点。无论您选择哪种方式,您最终都会在 develop
中得到相同的合并提交总数。不同之处仅在于这些合并提交结束的时间。如果您先将 release
合并回来,您将不会获得所有 release
到 master
的合并提交,直到稍后,当您进行修补程序时,所有这些都一次性完成。如果您执行 master
回到 develop
,您会立即看到最近的合并提交。但是将 master
合并回 develop
有一个更大的优势:
始终确保 master
中的所有更改也在 develop
或 release
中(如果存在)。 (它们唯一应该不同步的时间是在 release
或 hotfix
分支完成期间。)也许确认 master
同步的最简单方法是确保master
中的 tip(最高提交)总是在 develop
中,或者 release
中存在。您可以很容易地以某个固定频率将其编写为 运行 的脚本,并在不正确时通知您。如果您不能期望 master
的提示提交永远在 release
.
中,那么该脚本会更加复杂
我的问题是关于 gitflow 过程中一个非常具体的点(如记录 here)。
我已经将 release/1.2
中的错误修正合并到 master
中,并进行了适当的标记。
除了历史看起来如何,从 release/1.2
反向合并与从 master
反向合并到 develop
之间有什么区别。
两种方法我都试过了,在我这个简单、人为的例子中,我发现develop
没有什么不同,正如我所料。
这样做有危险吗?以后会不会遇到乱七八糟的问题?我错过了一些明显的东西吗?我怀疑答案可能与 master
中的其他功能有关,但目前应该不在 develop
中。
合并发布以开发:
合并master进行开发:
如果您将 master
合并回开发分支,您将在开发分支中拥有所有 merge branch release/x.y into master
合并提交,而在合并 release/x.y
分支本身时,您只会得到真正的改变。
当然,这或多或少是一个表面问题。但合并方向通常只是从 develop
到 master
,而不是相反。
除了所说的合并提交使您的 develop
分支混乱之外,没有真正的危险。如果你坚持流程,就不应该有 master
中不在 develop
中的功能,因为热修复和发布分支应该始终合并到你的 develop
以及在 master
.
I suspect the answer may be to do with other features that have gone into
master
, but which should remain out ofdevelop
for the moment.
来自 master
的提交无论如何都会进入 develop
并与下一个修补程序合并。如果有真正的代码更改,可能会出现意外结果并扭曲主机修复内容。
将稳定分支(git流程中的master
)合并到开发分支(git流程中的develop
)是各种git工作流程中的已知方式. Bbitbucket Server(Atlassian 出售的商业解决方案)具有 Automatic branch merging 的功能。 Git 项目本身总是将分支 maint
合并到 master
中,因为有一些错误修复。
所以我真的不明白为什么 gitflow 的作者选择了另一种方式。可能是没有真正的道理,只是一个偶然的决定。
Are there dangers to this? Am I going to encounter messy issues later on? Am I missing something obvious?
没有危险;没有问题;而且您不会遗漏任何东西。将 master
合并回 develop
是(恕我直言)稍微 更好的方法,并且没有缺点。无论您选择哪种方式,您最终都会在 develop
中得到相同的合并提交总数。不同之处仅在于这些合并提交结束的时间。如果您先将 release
合并回来,您将不会获得所有 release
到 master
的合并提交,直到稍后,当您进行修补程序时,所有这些都一次性完成。如果您执行 master
回到 develop
,您会立即看到最近的合并提交。但是将 master
合并回 develop
有一个更大的优势:
始终确保 master
中的所有更改也在 develop
或 release
中(如果存在)。 (它们唯一应该不同步的时间是在 release
或 hotfix
分支完成期间。)也许确认 master
同步的最简单方法是确保master
中的 tip(最高提交)总是在 develop
中,或者 release
中存在。您可以很容易地以某个固定频率将其编写为 运行 的脚本,并在不正确时通知您。如果您不能期望 master
的提示提交永远在 release
.