你有没有做过一个项目,跑了一个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"}