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

如何将commit C'''移至C'之上且无需合并与父提交B的差异?

将提交C'''直接变基到C'之上的方法

当前仓库的提交结构如下:

A <-- B <-- C'(v1)
      ⇡__ C'''(main)

要实现把C'''直接移到C'提交之后(完全保留C'''的内容,无需处理它和C'相对于共同父提交B的差异),可以用Git的rebase --onto命令完成,具体步骤如下:

  1. 切换到main分支:

    git checkout main
    
  2. 执行定向变基命令:

    git rebase --onto C' B
    

    或者更明确指定目标提交:

    git rebase --onto C' B C'''
    

    这个命令的作用逻辑:

    • --onto C':指定把目标提交挂载到C'的提交链之后
    • B:表示忽略从B到C'''原父提交之间的所有历史,只提取C'''这一个提交
    • 最终会直接把C'''放到C'的末尾,完全保留其提交内容,不会触发和C'的差异合并操作。
  3. 若执行中出现冲突(按需求理论不会,但如果出现),直接采用C'''的内容覆盖即可:

    git checkout --theirs .
    git add .
    git rebase --continue
    

执行完成后,仓库提交结构会变为:

A <-- B <-- C' <-- C'''(main)
            (v1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:41:39