我运行了git状态,它告诉我一切都是最新的,没有本地更改。
然后我做了几次连续的改变,意识到我想扔掉一切,回到原来的状态。这个命令能帮我吗?
git reset --hard HEAD
我运行了git状态,它告诉我一切都是最新的,没有本地更改。
然后我做了几次连续的改变,意识到我想扔掉一切,回到原来的状态。这个命令能帮我吗?
git reset --hard HEAD
当前回答
在此处添加另一个选项。
我指的是标题:还原本地更改。它还可以应用于未准备提交的更改。
在这种情况下,您可以使用:
git restore <file>
返回到以前的状态。
其他回答
其他答案似乎太复杂了,所以这里有一个简单的解决方案对我有效:
如何放弃所有本地更改并将文件重置为当前分支上的最后一次提交?
# Execute on the root of the working tree...
# Discard all changes to tracked files
git checkout .
# Remove all untracked files
git clean -fd
注意:忽略的文件将不受影响
简单地执行-
git stash
它将删除所有本地更改。您也可以稍后通过执行-
git stash apply
如果您在顶级项目目录中,请尝试以下操作:
git restore .
如果没有,则使用:
git restore :/
如果要还原子集的本地更改:
使用top pathspec magic还原所有工作树文件:git restore:/还原当前目录中的所有文件:gitrestore。文件类型(例如所有C源文件):git restore“*.C”
有关详细信息,请参阅git restore文档。
要删除未跟踪的文件:gitclean-f
我遇到了类似的问题。解决方案是使用gitlog来查找本地提交的版本与远程提交的版本不同。(例如,版本为3c74a11530697214cbcc4b7b98bf7a65952a34ec)。
然后使用git reset-hard 3c74a11530697214cbcc4b7b98bf7a65952a34ec还原更改。
您可能不一定希望/需要将您的工作/文件存储在工作目录中,而是简单地将其完全删除。命令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