我运行了git状态,它告诉我一切都是最新的,没有本地更改。

然后我做了几次连续的改变,意识到我想扔掉一切,回到原来的状态。这个命令能帮我吗?

git reset --hard HEAD

当前回答

两个简单步骤

git fetch origin
git reset --hard origin/master

或者如果您的git使用main而不是master,请使用以下命令:

git reset --hard origin/main

其他回答

如果您在顶级项目目录中,请尝试以下操作:

git restore .

如果没有,则使用:

git restore :/

如果要还原子集的本地更改:

使用top pathspec magic还原所有工作树文件:git restore:/还原当前目录中的所有文件:gitrestore。文件类型(例如所有C源文件):git restore“*.C”

有关详细信息,请参阅git restore文档。

要删除未跟踪的文件:gitclean-f

这个问题更多的是关于更广泛的存储库重置/恢复,但如果您对恢复单个更改感兴趣,我在这里添加了类似的答案:

https://stackoverflow.com/a/60890371/2338477

问题解答:

如何恢复git历史记录中保留或不保留更改的单个更改如何返回到旧版本以从相同状态重新启动

在此处添加另一个选项。

我指的是标题:还原本地更改。它还可以应用于未准备提交的更改。

在这种情况下,您可以使用:

git restore <file>

返回到以前的状态。

如果您想恢复所有更改并更新当前远程主机(例如,您发现主机HEAD已向前移动,因为您已将其分支,并且您的推送被“拒绝”),您可以使用

git fetch  # will fetch the latest changes on the remote
git reset --hard origin/master # will set your local branch to match the representation of the remote just pulled down.

尝试此操作以还原本地分支中未提交的所有更改

$ git reset --hard HEAD

但如果您看到这样的错误:

fatal: Unable to create '/directory/for/your/project/.git/index.lock': File exists.

您可以导航到“.git”文件夹,然后删除index.lock文件:

$ cd /directory/for/your/project/.git/
$ rm index.lock

最后,再次运行命令:

$ git reset --hard HEAD