You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

误操作git clean删除追踪/未追踪文件及数据库,求恢复方案

如何恢复被git clean误删的追踪文件(包括数据库文件)

别慌!先别急着重新clone仓库——只要那些被误删的追踪文件(比如你的db/production.sqlite3)之前被提交过Git仓库,我们完全可以从Git的历史记录里把它们找回来。下面一步步来解决:

第一步:确认哪些文件能通过Git恢复

先仔细看你的git status输出,里面如果有类似 deleted: db/production.sqlite3 的条目,说明这个文件之前是被Git追踪的,Git有它的历史快照,能直接恢复。如果某个文件没出现在这个列表里,那它从来没被提交过,Git帮不了你,得靠系统级的恢复工具(比如Mac的Time Machine)来尝试找回。

第二步:恢复追踪文件

恢复单个文件

如果只想恢复特定的文件(比如那个生产数据库),直接执行:

git checkout HEAD -- db/production.sqlite3

这个命令会从当前分支的最新提交(HEAD)里把指定文件恢复到本地。

恢复所有被删的追踪文件

如果有一堆追踪文件被误删,不想一个个输文件名,可以用:

git checkout HEAD -- .

注意最后的.代表当前目录,这个命令会把所有被删的追踪文件都恢复到最新提交的状态。

第三步:处理未追踪文件的损失

那些被git clean删掉的未追踪文件(比如你git status里显示的app/assets/javascripts/.txt这类),因为从来没被Git追踪过,Git没有它们的历史记录。如果这些文件很重要,赶紧试试系统的备份工具——比如Mac用户打开Time Machine看看有没有快照,或者检查本地有没有其他备份副本。

要不要重新clone仓库?

只有当上面的方法无法恢复你需要的追踪文件,或者你不确定仓库的提交状态时,再考虑重新clone。但clone之后,你得重新处理那些之前未追踪的内容(如果没有备份的话,这些内容可能就找不回来了)。

最后提个醒

以后用git clean一定要谨慎!执行删除前,先加-n参数预览一下会被删除的文件:

git clean -n

这个命令只会列出要删除的文件,不会真的执行删除,确认没问题后再用-f参数执行真正的清理操作。

内容的提问来源于stack exchange,提问作者tomb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:48:58