有人可以解释,为什么会出现这种情况:
A--B--C--D (master)
\
\E--F (feature/xxx, feature/xxx-blah)
如果我将feature/xxx-blah
合并到master
,分支指针实际上不会移动?提交在那里,master
指针是高级的,但两个功能都指向同一个提交F
。
我希望最终得到这个:
A--B--C--D--G (master, feature/xxx-blah)
\ /
\E--F/ (feature/xxx)
答案 0 :(得分:3)
这是按设计工作的 - 当您合并时,您只会推进当前分支。这实际上是一个有用的属性,因为如果它按预期工作,那么在合并它之后,你就不能轻易地告诉你的功能分支上的内容 - master
和feature/xxx-blah
将包含完全相同的提交。
在大多数情况下(特别是“瓷器”命令),git中创建新提交的操作将推进当前分支,但不会推进任何其他分支作为副作用。
可能值得做的另一点是,您可以从任何提交(或多个提交)合并 - 它们不必是分支。
答案 1 :(得分:0)
您评论执行no-ff
合并的事实解释了您的预期:
A--B--C--D--G (master, feature/xxx-blah)
\ /
\E--F/ (feature/xxx)
但正如“Why does git use fast-forward merging by default?”中所述,no-ff
不是默认值
您在“Moving master head to a branch”中看到了类似的情况。