如何撤消 git pull

你有没有做过一个项目,跑了一个git pull才意识到你已经搞砸了?现在,您的所有代码都已被远程存储库中的任何内容覆盖 – 有时这不是您想要的。在这种情况下,很容易恐慌,但幸运的是,有几种方法可以将您的代码恢复到其旧状态并撤消git pull.

首先,复制你的项目,以防你让事情变得更糟。另请注意,这些命令将导致您丢失所有未提交的更改 – 因此备份可以帮助您在继续之前保存这些内容。至少到那时,您将拥有当前拥有的版本。完成此备份后,您将需要获取所有提交历史记录的列表。你可以通过运行来做到这一点git reflog

git reflog

这将生成一个如下所示的列表:

648e314 (HEAD -> master, origin/master) HEAD@{0}: commit: Design refresh
b0168ee HEAD@{1}: commit: Minor CSS tweaks
514a02f HEAD@{2}: commit: Fixed extra curly brace
b432ba7 HEAD@{3}: commit: fixed border-radius
a707d13 HEAD@{4}: commit: fixed image border-radius
abf89a3 HEAD@{5}: commit: updated look and feel

选择要恢复到的版本。例如,如果我想恢复到“Minor CSS tweaks”,我会选择 ID b0168ee。接下来,运行以下命令将您的存储库恢复到该版本:

git reset --hard b0168ee

这很容易,并且让您可以很好地控制要恢复的版本。但是,另一种更简单的方法是给时间。如果您不想运行git reflog,则可以运行以下命令以恢复到 30 分钟前的存储库版本,假设您的分支是master请注意,如果您已经在特定分支上工作了很长时间,这可能会使您退回很远。在这种情况下,您可能会更好地使用以前的方法 – 但如果您有备份应该没问题。?

git reset --hard master@{"30 minutes ago"}