如何在Git中删除指定范围内的特定提交与合并记录
移除Git中指定范围的提交与合并记录
要删除提交历史中间的指定提交(包括合并记录),用交互式变基是最直接的方法,步骤如下:
- 先找到待删除提交的前一个有效提交的哈希值(也就是你要保留的最后一个提交,比如你提到的第10条提交)。可以用
git log --oneline查看提交历史,复制这个提交的短哈希。 - 执行交互式变基命令,把
<目标提交哈希>替换成你找到的那个值:
git rebase -i <目标提交哈希>
- 此时会打开文本编辑器,里面列出了目标提交之后的所有提交记录:
- 找到要删除的4条提交(包括合并记录),把它们行首的
pick改成drop;或者直接删除这几行也能达到目的。 - 合并记录在列表里会以
merge开头,处理方式和普通提交一致。
- 找到要删除的4条提交(包括合并记录),把它们行首的
- 保存并关闭编辑器,Git会自动重新应用保留的提交,跳过被标记删除的记录。
- 如果这些提交已经推送到远程仓库,需要强制更新远程分支(⚠️ 仅在你是唯一开发者或提前和团队沟通确认后操作,避免覆盖他人提交):
git push --force-with-lease
内容的提问来源于stack exchange,提问作者PoUrYa
相关产品推荐
相关产品推荐

