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

执行git rebase --rebase-merges遇冲突,如何实现分支历史移植?

Git分支移植问题与解决方案

我的Git仓库包含两个历史无关联的分支,结构如下:

A'

A - B - [...] - C

其中[...]代表复杂的非线性多提交结构。提交A和A'均为仅包含一个近乎相同文件的简单提交,提交B的内容是删除该文件并从零开始开发。

我尝试执行以下命令:

git rebase --rebase-merges --onto A' B C

原本期望得到的分支结构是:

A' - B' - [...] - C'

这里的X'指修改了父节点的提交X。我本以为除生成B'时可能存在冲突外,其余过程可自动完成,但实际操作中Git却出现了奇怪的「已删除文件」冲突,即使是非合并提交也需要手动解决,同时还要求我重新处理[...]部分中曾出现过的所有合并冲突。

我希望Git生成一个除父节点为A'(SHA值不同)外与B完全一致的提交B',并以此迭代完成移植。这是否无法实现?

背景说明:我这么做是因为Overleaf的Git实现存在限制,无法直接用现有仓库初始化项目,只能先创建空项目(即我的A'),再将现有项目移植到其上方。

解决方案总结

  • 原命令中的B需改为A,修正后的命令为:
    git rebase --rebase-merges --onto A' A C
    
  • 针对需要重新处理合并冲突的问题,在执行git rebase --continue前,需用git add添加恢复的文件,以此标记冲突已解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:50:01