You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git rebase --onto遇冲突:不解合并共同祖先输出及冲突原因

问题:变基到master时出现意外冲突的原因?

我有一个基于develop分支的feature分支,仅包含一个提交。因为功能需提前上线,我决定将feature分支变基到master分支,执行的命令如下:

git checkout feature
git rebase --onto origin/master HEAD~

变基过程中遇到了冲突,diff3格式的输出如下:

<<<<<<< origin/master
||||||| merged common ancestors
some code I didn't touch
=======
same code I didn't touch
code I added in my commit on feature
>>>>>>>

我本以为不会出现冲突,因为我仅新增了代码,未修改现有代码。此外,那段未改动的代码存在于基于develop的feature分支中,但既不在我的提交里,也不在origin/master中,我无法理解它为何会出现在合并共同祖先部分。

执行git merge-base --all HEAD origin/master时,输出的是origin/master的最新提交,该提交并不包含那段未改动的代码。

我认为变基的输出应如下所示(无冲突,仅作预期展示):

<<<<<<< origin/master
||||||| merged common ancestors
=======
code I added in feature
>>>>>>>

那段未改动的代码不应出现在任何位置,因为它既不在origin/master也不在我的提交中。我原以为执行的rebase --onto命令效果等同于将feature的唯一提交cherry-pick到origin/master之上(解决冲突后确实会达到该效果)。

我忽略了什么?


内容的提问来源于stack exchange,提问作者PrOpoLo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 05:36:17