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

如何移除Git分支中特定PR并保留本地变更与后续提交?

移除branch3中PR1的变更并保留本地提交

要在branch3中移除源自development分支的PR1变更,同时保留你在branch3上的所有修改,最直接的方法是通过git rebase --onto改写分支历史,具体步骤如下:

  • 切换到目标分支branch3:

    git checkout branch3
    
  • 找到PR1合并到development之前的commit哈希值(记为<old-dev-commit>):
    查看development的提交日志定位该节点:

    git log --oneline development
    

    在日志里找到合并PR1的记录,它的第一个父提交就是PR1合并前的development状态,复制对应的commit哈希即可。

  • 执行rebase操作,将branch3的本地提交移到<old-dev-commit>之上:

    git rebase --onto <old-dev-commit> development
    

    这个命令会提取branch3中所有在development分支之后的提交(即你在branch3上的修改),并将它们重新应用到PR1合并前的development节点上,彻底排除PR1的变更。

  • 如果branch3已推送到远程仓库,由于rebase改写了提交历史,需要强制推送(推荐用--force-with-lease替代--force,避免覆盖他人的远程变更):

    git push --force-with-lease origin branch3
    

备选方案:交互式rebase

若偏好可视化操作,可通过交互式rebase手动剔除PR1的提交:

git rebase -i <old-dev-commit>

在弹出的编辑器中,找到所有属于PR1的提交行,将行首的pick改为drop,保存退出后Git就会移除这些提交,保留你在branch3上的修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:22:14