11

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

注意:我还没有提交暂存文件。out ofgit status是删除的文件列表,格式如下:

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

5 回答 5

12

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

只需做一个(因为你没有提交任何东西):

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

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

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

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

git add -A .

请参阅“和之间有什么区别?git add .git add -u

于 2014-04-28T05:35:54.867 回答
7

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

git reset HEAD path/to/deleted/file

然后恢复文件:

git checkout path/to/deleted/file
于 2017-11-15T02:08:26.907 回答
4

在本地机器上恢复 git delete

您想要撤消 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
于 2019-05-02T07:57:35.733 回答
0

为了补充@VonC的答案,

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

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

于 2014-04-29T09:58:16.537 回答
0

我删除了一个文件夹而没有提交更改。我可以通过简单地使用来恢复文件夹git recover

git recover name_of_deleted_folder

我不得不拼写全名,那是partial_name_of_deleted_folder*行不通的。

于 2022-02-19T11:31:55.393 回答