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

Git缺失Blob致提交失败,git log无输出求助

解决Git缺失Blob导致的文件损坏问题

步骤1:彻底清除损坏文件的Git痕迹

既然接受丢失该文件历史,直接把它从Git的索引和所有历史记录里删掉:

  • 先删除本地损坏的文件(如果能备份现有内容最好,没法用就直接删):
    rm src/test/java/webproject/mydir/foo.java
    
  • 执行命令清除该文件的所有Git记录:
    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch src/test/java/webproject/mydir/foo.java' --prune-empty --tag-name-filter cat -- --all
    
  • 清理操作产生的临时文件,释放空间:
    git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
    git reflog expire --expire=now --all
    git gc --prune=now --aggressive
    

步骤2:重建文件并重新提交

  • 重新创建src/test/java/webproject/mydir/foo.java,写入正常代码内容
  • 把文件加入Git并提交:
    git add src/test/java/webproject/mydir/foo.java
    git commit -m "recreate foo.java after repo corruption fix"
    

步骤3:验证仓库状态

  • 运行git fsck检查仓库是否还有缺失对象:
    git fsck
    
  • 确认没有报错后,再尝试用IntelliJ提交代码,问题应该就能解决了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:54:51