对于经常使用 Git 的开发人员来说,操纵历史记录是很常见的。事实上,开发人员经常需要从 Git 历史记录中删除提交。幸运的是,Git 提供了许多命令来使此操作成为可能。 让我们开始吧😎。 第 0 步 - 准备 在操作 Git 历史记录之前,请使用 命令确保您的工作目录没有任何更改。 git status 第 1 步 - 删除本地提交 要从远程服务器删除提交,首先,您需要将它们从本地历史记录中删除。 1.1 对于从顶部连续提交 如果要删除的提交位于提交历史记录的顶部,请使用 命令以及 对象和要删除的提交数。 git reset --hard HEAD git reset --hard HEAD~1 此命令将删除 。 最新的提交 git reset --hard HEAD~3 此命令将删除 。 最新的三个提交 您还可以使用提交的哈希删除最多特定的提交,如下所示: git reset --hard <hash> 1.2 对于非连续提交 但是,如果您想删除非连续提交,则需要使用交互式变基。 使用 命令查找包含要删除的所有提交的最后提交哈希。 [ ] git reflog 使用 启动交互式变基。 [ ] git rebase -i <hash> 在编辑屏幕中,找到要删除的提交行并将其删除。 [ ] 保存退出(可能需要解决冲突) [ ] 使用 结束交互式变基,或者通过 重新开始。 [] git rebase --continue 中止变基 第 2 步 - 从远程删除提交 要从远程删除提交,您需要使用 命令将本地更改推送到远程。 git push git push origin HEAD --force 由于本地历史记录与远程历史记录不同,因此您需要使用 选项。 force 最后的想法 正如您所看到的,Git 可以轻松地从远程服务器删除提交。 但是,在使用带有 选项的 命令时需要小心,因为如果不小心,可能会丢失进度。 force git push 感谢您的阅读!