PC崩溃后Git仓库损坏、未提交文件为空,如何恢复?
恢复Git仓库及丢失文件的实操步骤
1. 修复损坏的.git目录
- 先确认仓库根目录下的
.git文件夹是否存在:- 若存在但损坏,优先用Git自动生成的备份文件恢复核心文件:
cd 你的仓库根目录 # 恢复HEAD文件 [ -f .git/HEAD.orig ] && cp .git/HEAD.orig .git/HEAD # 恢复暂存区索引文件 [ -f .git/index.orig ] && cp .git/index.orig .git/index - 若
.git文件夹部分缺失,先备份损坏的目录,再从远程重建核心结构(不会覆盖本地文件):mv .git .git_broken git init git remote add origin 你的远程仓库地址 git fetch origin
- 若存在但损坏,优先用Git自动生成的备份文件恢复核心文件:
2. 找回空白的未提交文件
- 磁盘修复导致文件变空白,先停止向该磁盘写入任何数据,避免覆盖:
- Windows用
chkdsk /r、Linux用testdisk扫描磁盘,找回损坏前的文件版本
- Windows用
- 尝试从Git对象库提取残留数据:
之后可以查看git fsck --lost-found cd .git/lost-found/other for obj in *; do git cat-file -p $obj > ../recovered_$obj; done.git/lost-found下的恢复文件,匹配你丢失的内容。
3. 恢复丢失的stash内容
- 先尝试从reflog查找stash记录:
找到对应的哈希值后,用git reflog show stash@{0}git stash apply 哈希值恢复。 - 如果reflog损坏,同样用
git fsck --lost-found找回可能的stash对象,逐个解析尝试。
4. 验证并同步仓库
- 执行
git status检查状态,确认文件和分支是否恢复 - 若本地恢复无果,可同步远程仓库(注意:会覆盖本地未提交修改):
git reset --hard origin/你的分支名
内容的提问来源于stack exchange,提问作者EtherPaul
相关产品推荐
相关产品推荐

