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

如何将新分支提交rebase到已删除分支的旧提交上?

Git分支历史重构操作方案

初始需求(提交3对接提交1)操作步骤

你可以通过git rebase --onto命令实现提交父节点的修改,操作如下:

  1. 先查询对应提交的哈希值,记录三个关键节点的哈希:
    • 提交1的哈希(记为HASH1)
    • 提交2的哈希(记为HASH2,是提交3的原父节点)
    • 新dev分支上提交3的哈希(记为HASH3)
  2. 执行rebase命令修改父节点:
    git rebase --onto HASH1 HASH2 HASH3
    
  3. 此时操作后生成的新提交就是父节点为提交1的提交3,你可以将当前HEAD命名为dev分支:
    git checkout -b dev
    

操作完成后即可得到你期望的分支结构,master分支的历史不会受到影响。

补充场景(newdev分支对齐dev分支历史)操作步骤

如果希望newdev分支和调整完成的dev分支历史完全一致,分两种情况处理:

  • 若newdev上没有需要保留的独有改动,直接硬重置即可:
    # 切换到newdev分支
    git checkout newdev
    # 硬重置到dev分支的最新提交
    git reset --hard dev
    
    操作后newdev的提交历史会和dev完全相同。
  • 若newdev上存在需要保留的独有改动,将独有提交重新rebase到dev顶端即可:
    # 切换到newdev分支
    git checkout newdev
    # 将newdev上dev分支之后的提交全部迁移到dev顶端
    git rebase dev
    

注意:如果分支已经推送到远程仓库,修改历史后需要加-f参数强制推送,该操作会覆盖远程分支的历史,建议先和协作者确认后再执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:06:03