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

未执行初始提交的新git仓库中被删除的文件如何恢复?

Git未初始提交时执行git rm -rf后的文件恢复方法

你执行过git add .操作后,所有暂存过的文件都会以blob对象形式存储在.git目录下,只要没有执行git gc清理悬空对象,文件就没有永久丢失。
你之前执行的git checkout .和git reset无法生效,是因为此时还未生成任何提交记录,这两个命令都依赖已有提交作为恢复基准,因此无效果。

具体恢复步骤

  • 第一步:暂停当前仓库的所有写入操作,不要新增文件、执行新的git add/commit/gc等操作,避免原有存储的文件对象被覆盖。
  • 第二步:在仓库根目录执行命令:git fsck --lost-found
    这个命令会扫描仓库中所有悬空(未被提交/分支引用)的对象,将找到的blob文件全部写入.git/lost-found/other目录下。
  • 第三步:进入.git/lost-found/other目录恢复文件
    该目录下的文件以Git哈希值命名,无原始文件名与后缀,你可以根据文件内容识别:
    • 文本类文件可直接打开查看内容,匹配到对应文件后修改回原始文件名和后缀即可
    • 二进制类文件(图片、文档等)可根据文件头部特征判断格式,修改对应后缀后打开验证

特殊情况说明

如果你之前执行过git gc这类清理冗余对象的命令,悬空的blob对象可能被永久清理,这种情况下无法通过Git本身恢复文件,需要尝试使用磁盘级的数据恢复工具扫描磁盘分区找回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:24:05