如何恢复“git rm
我accidentely说git rm -r .
。 我该如何恢复?
我没有提交。
我认为所有文件都被标记为删除,并且也从我的本地结账中删除。
编辑:我可以(如果我知道命令)恢复到最后一次提交。 但是如果我能够撤销git rm -r .
会好很多git rm -r .
。 因为我不确定我在最后一次提交之后和git rm -r .
之前做了什么git rm -r .
。
git reset HEAD
应该这样做。 如果您没有任何关心的未提交更改,那么
git reset --hard HEAD
应该强行将所有内容重置为最后一次提交。 如果确实有未提交的更改,但第一条命令不起作用,请使用git stash
保存未提交的更改:
git stash
git reset --hard HEAD
git stash pop
在我的下一次提交之前,我发现了一些文件并继续进行修改,当时我意识到需要重新生成一些文件。 不要隐藏和重置,您可以简单地签出您错过/删除的单个文件(如果需要):
git checkout HEAD path/to/file path/to/another_file
这会使其他未提交的更改完整无缺,无任何解决方法。
要重新获得一些单个文件或文件夹,可以使用以下内容
git reset -- path/to/file
git checkout -- path/to/file
这将首先重新创建path/to/file
的索引条目并重新创建文件,就像它在最后一次提交时那样,即HEAD
。
提示:可以将一个提交散列传递给两个命令,以便从较旧的提交中重新创建文件。 有关详细信息,请参阅git reset --help
和git checkout --help
。