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

如何在Git分支中移除已合并到master的冗余提交?

解决Git分支B保留未合并提交的问题

直接用带--onto参数的rebase命令就能精准实现你的需求,步骤如下:

  1. 切换到分支B:

    git checkout B
    
  2. 执行精准变基命令:

    git rebase --onto master A
    

命令解释

  • --onto master:指定把分支B中不属于分支A的提交(也就是你在B上做的那1次提交),重新移植到master分支的最新顶端。
  • A:作为基准点,告诉Git跳过分支A上的所有提交(这部分已经合并到master了)。

为什么之前的rebase没生效?

如果之前你只执行了git rebase master,Git会尝试把B的所有提交都变基到master,但因为分支A的提交已经通过合并进入master,Git可能会把这些标记为"已合并"但仍然显示在提交历史里(尤其是如果合并用的是普通merge而非squash/rebase合并)。而--onto参数能直接指定要保留的提交范围,彻底剔除已合并的部分。

后续操作

  • 如果变基过程中出现冲突:手动修改冲突文件,执行git add <冲突文件>,然后运行git rebase --continue继续变基。
  • 如果想放弃变基:执行git rebase --abort回到操作前的状态。

验证结果:执行完变基后,用git log查看分支B的提交历史,应该只会看到你在B上新增的那1次提交,分支A的提交会被彻底移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 02:15:52