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

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
      

2. 找回空白的未提交文件

  • 磁盘修复导致文件变空白,先停止向该磁盘写入任何数据,避免覆盖:
    • Windows用chkdsk /r、Linux用testdisk扫描磁盘,找回损坏前的文件版本
  • 尝试从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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:03:44