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

如何将my-branch变基到master并移除bad-branch的提交?

解决Git变基后推送坏提交回归的问题

你的核心问题是:本地修改了分支历史,但远程仓库还保留着旧的提交记录,直接推送时Git自动合并了新旧历史,导致C、D提交又回来了。按下面步骤操作就能彻底清理掉坏提交:

  • 先同步本地master分支到最新状态:
    git checkout master
    git pull
    
  • 切回你的my-branch:
    git checkout my-branch
    
  • 用交互式变基把E、F直接移到master的B提交后面,同时丢弃C、D:
    git rebase -i master
    
    执行命令后会弹出编辑器界面,里面会列出从master分叉后所有的提交(C、D、E、F),把C、D对应的行开头的pick改成drop,保存并退出编辑器。完成后你的my-branch就会变成A--B--E--F的结构。
  • 强制推送改写远程分支的历史:
    git push --force-with-lease origin my-branch
    
    用--force-with-lease比直接--force更安全,能避免不小心覆盖其他人推送到这个分支的未同步修改。如果这个分支只有你在使用,直接用--force也可以,但优先推荐前者。

注意:如果这个分支还有其他协作者,一定要提前和他们沟通,让他们同步新的分支历史(他们需要执行git pull --rebase或者重新拉取分支),不然他们后续推送会再次引发历史冲突。

内容的提问来源于stack exchange,提问作者André Walker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:55:20