我 的 问题 围绕 着 gitflow 流程 中 的 一 个 非常 具体 的 点 ( 如 这里 所 述 ) 。
我 已经 将 release/1.2
中 的 错误 修复 合并 到 master
中 , 并 进行 了 适当 的 标记 。
除了 历史 记录 的 外观 之外 , 从 release/1.2
向后 合并 与 从 master
向后 合并 到 develop
之间 有 什么 区别 ?
我 已经 尝试 了 两 种 方法 , 在 我 的 简单 的 、 人为 的 例子 中 , 我 没有 看到 develop
的 区别 , 正如 我 所 期望 的 。
这样 做 有 危险 吗 ? 我 以后 会 遇到 混乱 的 问题 吗 ? 我 错过 了 一些 明显 的 东西 吗 ? 我 怀疑 答案 可能 与 master
中 的 其他 特性 有关 , 但 这些 特性 目前 应该 不在 develop
中 。
- 正在 合并 要 开发 的 版本 : * *
- 正在 合并 中 的 母 版 以 进行 开发 : * *
4条答案
按热度按时间oyxsuwqo1#
如果你把
master
合并回你的develop分支,你会在develop分支中得到所有的merge branch release/x.y into master
合并提交,而当合并release/x.y
分支本身时,你只得到真实的的改变。当然,这或多或少是一个表面问题,但是合并方向通常只是从
develop
到master
,而不是相反。没有真实的的危险,除了上述合并提交会使您的
develop
分支混乱。如果您坚持流程,master
中不应该有develop
中没有的特性,因为热修复和发布分支应该总是合并到您的develop
和master
中。plicqrtu2#
我怀疑答案可能与
master
中的其他特性有关,但这些特性目前应该不在develop
中。无论如何,来自
master
的提交将进入develop
,并进行下一个修补程序合并。如果存在真实的的代码更改,则可能会出现意外结果并扭曲主机修补程序内容。将稳定分支(gitflow中的
master
)合并到开发分支(gitflow中的develop
)在各种git工作流中是已知的方法。Bbitbucket Server(Atlassian正在销售的商业解决方案)有Automatic branch merging的特性。Git项目本身总是将分支maint
合并到master
,因为有一些bug修复。所以我真的不明白为什么gitflow的作者选择了另一种方式,可能是没有真正的理由,这只是一个偶然的决定。
0lvr5msh3#
这样做有危险吗?我以后会遇到混乱的问题吗?我错过了一些明显的东西吗?
没有危险;没有问题;并且您不会遗漏任何内容。将
master
合并回develop
(恕我直言)稍微好一点的方法,并且没有缺点。无论你选择哪种方式,你最终都会得到develop
中相同的合并提交总数。区别只是那些合并提交在那里结束的时间。如果你先将release
合并回来,你就不会'不要等到以后才能得到所有的release
到master
合并提交,当你做一个热修复的时候,一次就可以得到所有的合并提交。如果你做master
回到develop
,你会马上看到最近的合并提交。但是把master
合并回到develop
还有一个更大的好处:在任何时候,确保
master
中的所有更改也在develop
或release
中(如果存在)都很重要。(它们唯一不同步的时间是在完成release
或hotfix
分支期间。)确认master
是否同步的最简单方法可能是确保提示(top commit)inmaster
总是在develop
,或者release
,如果它存在的话。你可以很容易地编写脚本,让它以一定的频率运行,并在它不为真的时候通知你。如果你不能期望master
的tip commit出现在release
,那么这个脚本就更复杂了。nbnkbykc4#
我喜欢这样做,这样在列表视图中看起来就不会像master在develop之前。如果你把master合并到develop而不是release分支和hotfix,那么在列表视图中master永远不会在develop之前,如果是这样,你就知道出了问题,需要修复