git-rm-git撤消已删除的文件



我是git新手。我有来自远程的签出文件。我不得不从git repo中删除一些文件。我没有执行git rm命令,而是发出了unix rm -rf folder命令。我需要恢复delete命令,然后执行git rm命令。如何恢复到最新代码?

注意:我尚未提交暂存文件。git status的输出是以以下格式删除的文件列表:

#   deleted:    i18n/angular-locale_sl.js
#   deleted:    i18n/angular-locale_in.js 

我需要恢复delete命令,然后执行git-rm命令。如何恢复到最新代码?

只需做一个(因为你没有做出任何承诺):

cd /root/of/your/repo
git checkout HEAD -- .

这将把工作树恢复到索引中。

git reset --hard也应该工作,但这里不需要)

但您也可以直接将这些删除注册到索引中:

git add -A .

请参阅"git add .git add -u之间的区别是什么?"

如果您已暂存删除,请首先取消暂存:

git reset HEAD path/to/deleted/file

然后恢复文件:

git checkout path/to/deleted/file

在本地机器上还原一个git删除

您想要撤消git-rm或后面跟着git-add:

恢复索引中的文件:

git reset -- <file>

之后从索引结账

git checkout -- <file>

例如:

git reset -- src/main/java/de/foo/bar.java
git checkout -- src/main/java/de/foo/bar.java

通过@VonC、补充答案

我不得不从git repo中删除一些文件。我没有执行git-rm命令,而是发出unix rm-rf文件夹命令

这两个选项之间的唯一区别是git rm还可以从git索引中删除文件。但是,由于您从未将它们添加到索引中,因此没有特别的理由使用git rm,也不需要撤消普通的/bin/rm

我在没有提交更改的情况下删除了一个文件夹。我只需使用git recover 就可以恢复文件夹

git recover name_of_deleted_folder

我不得不拼写全名,那就是partial_name_of_deleted_folder*不起作用。

最新更新