我是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
答案 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