我是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*
不起作用。