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

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

git reset --hard HEAD

当前回答

如果您只想删除所有更改,请执行git签出。这是一种更快更简单的方法。

其他回答

我搜索了一个类似的问题,

想要放弃本地提交:

克隆了存储库(gitclone)切换到dev分支(git checkout dev)做了几次提交(gitcommit-m“commit 1”)但决定放弃这些本地提交,返回远程(origin/dev)

以下情况也是如此:

git reset --hard origin/dev

检查:

git status  

        On branch dev  
        Your branch is up-to-date with 'origin/dev'.  
        nothing to commit, working tree clean  

现在,本地提交丢失,返回到最初的克隆状态,即上面的第1点。

简单地执行-

git stash

它将删除所有本地更改。您也可以稍后通过执行-

git stash apply 

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

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

问题解答:

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

您可能不一定希望/需要将您的工作/文件存储在工作目录中,而是简单地将其完全删除。命令gitclean将为您执行此操作。

这样做的一些常见用例是删除由合并或外部工具生成的cruft,或者删除其他文件,以便可以运行干净的构建。

请记住,您需要非常谨慎地使用此命令,因为它旨在从本地工作目录中删除未跟踪的文件。如果在执行此命令后突然改变主意,则无法返回查看删除的文件的内容。另一种更安全的方法是执行

git stash--全部

这将删除所有内容,但将其全部保存在存储库中。这些藏起来的东西以后就可以用了。

但是,如果您确实想删除所有文件并清理工作目录,则应执行

gitclean-f-d

这将删除任何文件,以及由于该命令而没有任何项的任何子目录。在执行git clean-f-d命令之前,明智的做法是运行

git clean -f -d -n

它将向您显示执行gitclean-f-d后将删除的内容的预览

因此,这里总结了您的选择,从最具攻击性到最不具攻击性


选项1:本地删除所有文件(最具攻击性)

git clean -f -d

选项2:预览上述影响(预览最具攻击性)

git clean -f -d -n

选项3:存放所有文件(攻击性最小)

git stash --all

前方危险:(请阅读评论。执行我的回答中提出的命令可能会删除更多内容)

完全删除所有文件,包括我必须运行的目录

git clean -f -d