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

如何删除Git的新commit记录并保留改动合并到更早的旧提交

Git提交合并操作指南

你需要将最新的两次提交改动合并到最早的commit 3中,同时删除前两次的提交记录,可按以下两种方案操作:

方案一:软重置方案(适配当前场景,操作更简单)

  1. 执行软重置命令,将HEAD指针回退到commit 3,同时保留commit 1、commit 2的所有改动:
git reset --soft HEAD~2
  1. 将暂存区的所有改动合并到commit 3中,执行后可以编辑最终的提交信息:
git commit --amend

方案二:交互式rebase方案(适合更复杂的提交合并场景)

  1. 先查询commit 3对应的哈希值:
git log --oneline
  1. 执行交互式rebase命令,假设查询到commit 3的短哈希为a1b2c3:
  • 如果commit 3不是仓库的初始提交,执行:
git rebase -i a1b2c3^
  • 如果commit 3是仓库的第一个提交,执行:
git rebase -i --root
  1. 在弹出的编辑器中,将commit 1、commit 2前面的pick修改为s(squash的缩写),修改后内容参考如下:
pick a1b2c3 commit 3
s 4d5e6f commit 2
s 7g8h9i commit 1
  1. 保存退出编辑器后,在新弹出的提交信息编辑页调整最终的提交信息,保存后即完成合并。

注意事项

如果之前已经将commit 1、commit 2推送到远程仓库,操作完成后需要执行git push -f强制推送覆盖远程的提交记录,多人协作分支操作前请提前和团队成员同步,避免影响他人提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 11:06:02