我有两个分支,dev
和next
,其中next
从dev
分支出来。分支有一点分歧,所以当我对dev
进行热修复时,我按照预期将更新合并到next
中。分支上的最新提交如下:
// dev
123455 Latest dev commit
123454 Earlier dev commits...
// next
123456 Merge branch 'dev' into next
123455 Latest dev commit
123454 Earlier dev and next commits...
现在我又提交了一个dev
,但是当我试图将它合并到next
和git merge --ff-only dev
时,它说快进是不可能的。当分支刚刚同步时,怎么会出现这种情况呢?
当您将dev
合并到next
中时,您只是将next
与dev
同步,但您根本没有更改dev
。这意味着dev
没有next
的所有更改。
快速转发会将next
分支移动到指向与dev
完全相同的提交,但这会导致您丢失next
更改,因此它将不起作用。
A - B - C <- dev
D - E - F <- next
在我的示例中,dev
包含A,B和C,而next
包含A,B, C, D, E和f。因此,如果没有合并提交,您不能将dev
合并到next
中,因为您将丢失D, E和f。