智用指南
第二套高阶模板 · 更大气的阅读体验

Git如何恢复删除文件 实用操作步骤与避坑指南

发布时间:2026-01-07 01:31:09 阅读:27 次

你有没有过这样的经历?改代码改到一半,手一抖把某个重要文件删了,然后大脑瞬间空白。别慌,只要这个文件之前提交过,Git 就能帮你找回来。

文件刚删,还没提交

如果你只是在本地删除了文件,但还没运行 git commit,那恢复起来最简单。直接执行下面这条命令:

git checkout -- <文件路径>

比如你删了 src/utils.js,那就这样恢复:

git checkout -- src/utils.js

这条命令会把文件从 Git 的暂存区重新拉回来,跟撤销操作差不多。

已经提交了删除操作

更常见的情况是,你不小心删了文件,还提交了,甚至可能又做了几次其他修改。这时候就得用 git checkout 指定历史提交来恢复。

先找到删文件之前的那次提交记录,可以用:

git log --follow -p <文件路径>

查看文件被删掉前的最后状态。找到那个提交的哈希值(比如 abc1234),然后执行:

git checkout abc1234~1 -- <文件路径>

这里的 ~1 是指删之前那一版。比如你要恢复的文件是 config.json,命令就长这样:

git checkout abc1234~1 -- config.json

执行完,文件就回来了,再 git addgit commit 保存一下就行。

用 git reflog 找丢失的提交

要是你不仅删了文件,还强制推送、清理分支,连提交都找不到了,别急,Git 还留了后路——reflog 记录了你所有的操作历史。

运行:

git reflog

你会看到一堆操作记录,比如“commit”、“reset”、“checkout”。找到删除文件前的那个状态,复制对应的哈希值,再用 git checkout 把文件捞出来。

比如你在 reflog 里看到 def5678 是删文件前的提交,那就:

git checkout def5678 -- <文件路径>

文件立马复活。

Git 其实像个时光机,只要你没彻底清空本地仓库,大部分误操作都能逆转。关键是别 panic,按步骤一步步找回就好。