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

使用Git推送/拉取时本地目录文件丢失,寻求恢复方法

找回丢失文件的实操方案

1. 优先从本地初始提交恢复

你的git reflog里记录了本地初始提交e2b07b9,这应该包含你克隆远程仓库前的本地文件,直接执行以下命令导出所有该提交下的文件:

git checkout e2b07b9 -- .

如果只想恢复特定文件,把.替换为具体的文件路径即可:

git checkout e2b07b9 -- docs/report.pdf src/utils.py

2. 切换到合并操作前的状态

查看reflog中的HEAD@{7}节点,这是你执行合并和reset操作前的状态,切换到该节点检查文件:

git checkout HEAD@{7}

如果此时能看到丢失的文件,立刻将这些文件复制到仓库外的安全目录备份,再切回主分支。

3. 深度扫描Git悬空对象

重新执行git fsck --lost-found后,Git会把未被引用的对象存到.git/lost-found/目录。用以下命令遍历所有悬空文件内容,匹配你丢失的文件:

for blob in $(find .git/lost-found/blobs -type f); do
  echo "--- 查看Blob: $blob ---"
  git cat-file -p $blob
done

找到匹配内容后,用下面的命令导出到指定文件:

git cat-file -p <找到的blob-id> > 恢复的文件名.txt

4. 从远程仓库拉取备份

你之前通过Github网页上传过脚本,检查远程仓库的提交历史,直接拉取对应版本的文件:

git fetch origin
git checkout origin/main -- path/to/需要恢复的文件

内容的提问来源于stack exchange,提问作者Koen ter Heegde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:07:25