网络学堂
霓虹主题四 · 更硬核的阅读氛围

Git如何恢复删除文件 使用技巧与常见问题解析

发布时间:2026-01-07 01:30:49 阅读:34 次

你有没有过这样的经历?手一滑,把项目里某个重要的配置文件删了,还没提交的时候就发现不对劲。别慌,Git 其实早就帮你留了后路。只要文件是被 git 跟踪过的,哪怕已经从工作区删了,大多数情况下都能找回来。

情况一:文件已删除,但还没 commit

这种情况最常见。你执行了 rm somefile.txt,结果发现删错了。这时候文件虽然在系统里没了,但 Git 的暂存区还留着记录。

用下面这行命令就能恢复

git checkout -- somefile.txt

这里的 -- 是为了防止文件名和分支名冲突,somefile.txt 就是你想恢复的文件名。如果你用的是 Git 2.23 及以上版本,也可以用新命令:

git restore somefile.txt

情况二:已经 commit,但后来又删了文件

比如你在上一次提交中还有这个文件,之后某次提交把它删了,现在想找回。先用 git log 查看历史,找到文件还在的那个提交记录。

假设你看到文件是在 abc1234 这个 commit 里存在的,可以用:

git checkout abc1234 -- somefile.txt

或者新版命令:

git restore -s abc1234 --source somefile.txt

这样文件就回到你的工作区了,记得再 commit 一下保存改动。

情况三:文件从未被跟踪过

如果这个文件你从来没 git add 过,那 Git 根本不知道它存在过。这种情况下,Git 帮不了你,得靠系统回收站或者备份工具来找回。所以建议平时及时提交,别等到丢了才后悔。

小技巧:批量恢复多个文件

有时候你不只是删了一个文件,而是一堆。比如误删了整个 config/ 目录。你可以一次性恢复:

git checkout HEAD -- config/

这条命令会把 config 目录下所有被删的、且曾被跟踪的文件都恢复回来。

开发过程中,谁都会犯错。Git 的设计就是为了解决这类问题。关键是搞清楚文件处于哪个阶段,然后选对命令。多试几次,慢慢就熟了。