【发布时间】:2011-01-08 16:52:09
【问题描述】:
我不小心说了git rm -r .。我该如何从中恢复?
我没有承诺。
我认为所有文件都被标记为删除,并且也从我的本地结帐中物理删除。
编辑: 我可以(如果我知道该命令)恢复到上次提交。但如果我可以撤消git rm -r .,那会好很多。因为我不确定在最后一次提交之后和git rm -r . 之前我做了什么。
【问题讨论】:
-
对于这个特定的问题,reset --hard 是一个很好的解决方案...它已经列出,所以我将在此评论中提到您可能需要查看 git-reflog 的文档。
-
请注意,由于您没有将
-f提供给git rm,git 不会删除任何已暂存或未暂存更改的文件,因此git reset; git checkout .应该会恢复所有内容。 -
请注意 - git checkout 。将清除所有未暂存的更改。
-
我只是做了这样的事情,我不明白为什么我的本地文件被删除了(而且,像 OP 一样,我还没有提交。)
-
使用 Git 2.23+(2019 年 8 月),您可以使用
git restore:git restore -s@ -SW -- .恢复文件。见my answer below。