从本地git repo恢复删除的文件



我意外地rm'在git repo中创建了一些文件。这些文件已经被更改了很多,还没有被git add'd。

有没有办法将文件恢复到"上次保存"的状态?

更新

我只是想感谢大家的回复,这没什么大不了的,我只是删除了我所有的点文件:"(

使用git无法做到这一点。

git可以使您的文件返回到其上次提交状态,而不是最后保存的状态。

如果你使用vim,可能一些*~备份文件仍在你的git repo中,那么你可以重命名它。

如果没有,请尝试一些恢复工具,如TestDisk

BTW:rm是一个危险的命令,请尝试添加-i选项:rm -i xx

首先检查您的IDE功能。

  • IntelliJ IDEA有一个";地方历史">
  • VSCode现在具有"0";本地时间线">

您可以通过这种方式恢复更改的文件。

正如@tkausl所说,你可以恢复尚未提交的git added文件,只需付出更多的努力,并了解git如何存储添加的内容,但git add是你告诉git新内容的方式,很多时候我会git add -p添加我已经测试过的内容,并继续使用我仍在使用的内容。

所以,不,除非你的编辑有追溯到那么远的历史。

如果您在本地删除了多个文件,但没有提交更改,请转到本地存储库路径,打开gitshell并键入。

$ git checkout HEAD .

将恢复上次提交之前删除的所有文件。

添加"将当前存储库中所有已删除的文件恢复到它们各自的路径。

有关更多详细信息,请查看文档。

最新更新