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

如何将含合并结构的分支迁移至目标分支且保留原有提交结构?

解决Git分支结构调整问题

要保留D、E、F、G的原有合并结构,同时将D从C的下游移到B的下游,你需要在rebase时保留合并提交,具体操作如下:

  1. 切换到包含G的分支(假设该分支名为feature):

    git checkout feature
    
  2. 执行带--preserve-merges(可简写为-p)参数的rebase命令,指定将C之后到G的提交(包含合并结构)迁移到B的下游:

    git rebase --onto B C -p
    

执行完成后,你会得到目标分支结构:

A -- B
\     \
 C     D -- E -- G
        \        /
         ------F-

原理说明

  • --onto B:指定把目标提交系列迁移到B的末尾
  • C:作为上游边界,仅迁移C之后的提交(即D、E、F、G)
  • -p/--preserve-merges:让Git保留原有的合并提交结构,不会将G的合并操作展开为线性提交,从而完整保留D-E-G和D-F-G的分支关联

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:25:00