git undo删除文件

时间:2014-04-28 05:00:27

标签: git git-rm git-stage

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

注意:我还没有提交暂存文件。git status中的文件列表是以下格式删除的文件列表:

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

4 个答案:

答案 0 :(得分:10)

  

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

简单地做一个(因为你没有提交任何东西):

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

这会将工作树恢复为索引。

(A git reset --hard也应该有用,但这里不需要)

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

git add -A .

请参阅" What's the difference between git add . and git add -u?"

答案 1 :(得分:2)

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

git reset HEAD path/to/deleted/file

然后恢复文件:

git checkout path/to/deleted/file

答案 2 :(得分:0)

补充@VonC的答案,

  

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

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

答案 3 :(得分:0)

在本地计算机上还原git删除

您要撤消git rm或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