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

执行Git命令后本地项目文件丢失,寻求恢复方法

恢复本地丢失文件的解决方案

步骤1:查看Git操作记录,定位丢失前的提交

执行以下命令查看所有HEAD的移动历史,包括被覆盖的提交:

git reflog

输出会显示一系列记录,每条记录包含提交哈希、操作说明。找到执行git pull --allow-unrelated-histories之前的那条记录,复制对应的提交哈希值(通常是一串7位或更长的字符)。

步骤2:创建临时分支恢复文件

用找到的哈希值创建临时分支,避免直接修改主分支:

git checkout -b recovery <提交哈希值>

切换到这个分支后,检查本地文件是否已经恢复。如果文件存在,说明定位正确。

步骤3:重置主分支到恢复点

确认临时分支的文件完整后,切换回主分支并重置:

git checkout main
git reset --hard <提交哈希值>

注意:--hard参数会丢弃当前主分支的所有未提交修改和后续错误合并的内容,执行前务必确认临时分支的文件是正确的。

备选方案:查找Git未引用对象

如果git reflog找不到目标提交,执行以下命令扫描Git对象库中的丢失文件:

git fsck --lost-found

执行后,Git会将未被引用的文件对象存放在.git/lost-found/目录下,你可以查看该目录下的文件,手动恢复内容。

问题原因说明

git pull --allow-unrelated-histories用于合并两个完全独立的Git仓库历史(比如本地初始化仓库后,远程已经有了独立提交)。如果远程仓库的历史是空的或与本地差异极大,合并过程中Git可能会将本地文件标记为“被删除”,导致你看到的文件丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:22:45