假设你正在 Git 中处理你的代码,但有些事情没有按计划进行。所以现在你需要恢复你的最后一次提交。你怎么做呢?让我们一探究竟吧!

有两种可能的方法可以撤消上次提交。我们将在本文中介绍它们。

revert 命令

revert 命令将创建一个提交,该提交还原所针对的提交的更改。你可以使用它来恢复最后一次提交,如下所示:

git revert <commit to revert>

你可以使用 git log 找到要还原的提交的名称。那里描述的第一个提交是创建的最后一个提交。然后你可以从那里复制字母数字名称,并在 revert 命令中使用它。

image-117
在图像中,每个圆圈代表一次提交

reset 命令

你还可以使用 reset 命令撤消上次提交。但要小心——它会改变提交历史,所以你应该很少使用它。它会将 HEAD(工作分支)移动到指定的提交,并在之后丢弃任何内容:

git reset --soft HEAD~1

--soft 选项意味着你不会丢失可能有的未提交更改。

image-113
在图像中,每个圆圈代表一次提交

如果要重置为最后一次提交,并删除所有未暂存的更改,可以使用 --hard 选项:

git reset --hard HEAD~1

这将撤消最新的提交,但也会撤消任何未提交的更改。

image-112
在图像中,每个圆圈代表一次提交

你应该在 Git 中使用 resetrevert

如果被重置的提交只存在于本地,你真的应该只使用 reset。此命令会更改提交历史记录,并且可能会覆盖远程团队成员所依赖的历史记录。

revert 是创建一个新的提交来撤消更改,因此如果要恢复的提交已经被推送到共享仓库,最好使用 revert,因为它不会覆盖提交历史。

小结

你已经学习了两种撤消最后一次提交的方法,以及何时最好使用其中一种方法。

现在,如果你注意到上次提交引入了错误或不应该提交,你就知道如何修复它了!

原文:Git Revert Commit – How to Undo the Last Commit,作者:Ilenia Magoni