我有时会发现自己处于以下情况,并希望将C重定为B:
B
/
A
C <-- HEAD
我发现,如果我只是简单地执行git rebase B
,我经常会收到很多关于"退回到合并策略"one_answers"自动解决"冲突的警告。有时我会直接发生冲突。
所以我改为做git rebase A --onto B
。这几乎总是成功的,没有任何警告或冲突。
我真的不明白这两个命令之间的区别,也不明白为什么第一个命令更有问题。有没有一种不那么麻烦的方法可以在不指定两个不同提交的情况下完成我想要的任务?
(例如:git rebase --some-magic-switch B
(?
编辑:只是为了增加清晰度,所需的结果是:
A -- B -- C' <-- HEAD
CCD_ 4和CCD_。唯一的区别是第一个会产生警告,有时还会产生冲突。
不应该有任何警告或冲突,但如果你想真正明确:
git rebase --onto B A C
这将接受A..C
范围内的所有提交,并将它们复制到B.之上
当然,如果存在实际冲突,冲突仍然可能发生,例如C更改的行与B更改的行相同。