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

Git教程:如何删除中间提交?

解决方法

要删除commit A并将提交历史调整到目标状态,可使用Git的变基(rebase)操作,以下是两种常用方案:

方案一:交互式变基(直观易操作)

  1. 确保当前处于feature/foo分支:
    git checkout feature/foo
    
  2. 执行交互式变基命令,以master为基准整理提交:
    git rebase -i master
    
  3. 此时会打开文本编辑器,里面会列出从master分支分叉后的所有提交(顺序为commit A、commit B、commit C,旧提交在前):
    • 找到commit A对应的行,将开头的pick替换为drop,或者直接删除该行
    • 保存并退出编辑器
  4. 如果变基过程中出现冲突,先手动解决文件冲突,执行git add <冲突文件>后继续变基:
    git rebase --continue
    

方案二:精准变基(适合明确提交哈希的场景)

若知道commit A的哈希值(假设为<A-hash>),可直接将commit A之后的提交(B和C)移到master分支顶端,跳过commit A:

git rebase --onto master <A-hash>

注意事项

  • 如果feature/foo分支已推送到远程仓库,调整历史后需要强制推送:
    git push -f origin feature/foo
    
    强制推送前请确认团队内没有其他成员基于该分支开发,避免代码冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:40:31