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

执行git rebase -i编辑提交时意外合并,如何保留原提交历史?

Git变基时冲突处理导致提交合并的问题分析与解决

问题原因

  • 错误使用git commit --amend:当rebase尝试应用commit2并触发冲突时,Git处于“暂停应用commit2”的状态,此时HEAD指向的是你刚修改过的commit1。执行git commit --amend会把冲突解决的内容直接合并到commit1中,覆盖了原本要重建的commit2。
  • 变基流程误解:解决冲突后,不需要手动提交(更不能用amend),只需标记冲突文件为已解决,让rebase自动完成当前提交的重建。

解决步骤

  1. 终止当前异常变基:如果已经执行了错误的amend操作,先执行git rebase --abort,回到变基前的原始提交历史。
  2. 重新启动变基:再次执行git rebase -i <hash0>,将commit1和commit2的操作依然设为e(编辑)。
  3. 处理commit1:修改完成后执行git commit --amend更新提交信息,接着执行git rebase --continue进入commit2的处理环节。
  4. 正确处理commit2的冲突:
    • 打开冲突文件手动解决代码冲突
    • 执行git add <冲突文件名>标记冲突已解决
    • 直接执行git rebase --continue,Git会自动用解决后的内容重建commit2,最终保留initial commit、修改后的commit1、重建后的commit2这三个独立提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:52:04