当前位置: 首页 > article >正文

【解决方案】git错误:对象文件为空 error: object file

问题

提前关闭虚拟机,使得git push中断,导致本地与云端版本不一致,出现对象文件为空的错误。现象如下:

(base) root@yyy-VMware-Virtual-Platform:~/test# git status
error: 对象文件 .git/objects/e0/1e63bbb4eae481da19737d3d1c166484a586d0 为空
error: 对象文件 .git/objects/e0/1e63bbb4eae481da19737d3d1c166484a586d0 为空
fatal: bad object HEAD

解决方案

  1. 使用git fsck --full查看有哪些空文件:
(base) root@yyy-VMware-Virtual-Platform:~/test# git fsck --full
error: 对象文件 .git/objects/06/df9fcbe1977eef884d21b2e22237ee494c32a5 为空
error: 不能 mmap .git/objects/06/df9fcbe1977eef884d21b2e22237ee494c32a5: 没有那个文件或目录
error: 06df9fcbe1977eef884d21b2e22237ee494c32a5:对象损坏或丢失:.git/objects/06/df9fcbe1977eef884d21b2e22237ee494c32a5
error: 对象文件 .git/objects/34/8161c71c36b4f84d7b6de4e65f8d7b5348ea40 为空
error: 不能 mmap .git/objects/34/8161c71c36b4f84d7b6de4e65f8d7b5348ea40: 没有那个文件或目录
error: 348161c71c36b4f84d7b6de4e65f8d7b5348ea40:对象损坏或丢失:.git/objects/34/8161c71c36b4f84d7b6de4e65f8d7b5348ea40
error: 对象文件 .git/objects/3d/97cab99f6f87d36857b0568c9d09b2f04143d2 为空
......
  1. rm删除空文件并再次git fsck --full,检查是否还有空文件。
rm .git/objects/44/92a05fc0954268d3c9fa4e21526e7d30fbdfc0
  1. 或可以cd到.git目录下运行find . -type f -empty -delete -print自动删除全部空文件
cd .git
find . -type f -empty -delete -print
  1. 最终确认git fsck --full
(base) root@yyy-VMware-Virtual-Platform:~/test# git fsck --full
正在检查对象目录: 100% (256/256), 完成.
error: refs/heads/main:无效的 sha1 指针 e01e63bbb4eae481da19737d3d1c166484a586d0
error: refs/remotes/origin/main:无效的 sha1 指针 e01e63bbb4eae481da19737d3d1c166484a586d0
error: HEAD:无效的 sha1 指针 e01e63bbb4eae481da19737d3d1c166484a586d0
error: HEAD:无效的引用日志条目 e01e63bbb4eae481da19737d3d1c166484a586d0
error: refs/heads/main:无效的引用日志条目 e01e63bbb4eae481da19737d3d1c166484a586d0
error: refs/remotes/origin/main:无效的引用日志条目 e01e63bbb4eae481da19737d3d1c166484a586d0
注意:无默认引用
error: 4492a05fc0954268d3c9fa4e21526e7d30fbdfc0: invalid sha1 pointer in cache-tree of .git/index
error: f5b273722fe29f4bd940c7c93aa9bec0823f7347: invalid sha1 pointer in cache-tree of .git/index
error: 772bd6dd528cbd80e0a2c3919394722f5148142b: invalid sha1 pointer in cache-tree of .git/index
悬空 blob 52118c85df4b575d091e3b3dd6338941686b4fb9
悬空 blob 9de56cc91fe3054ad5189b2264b708c794059411
悬空 blob ccd524e0f558b2d9da48c07a249ffc42926211b3
悬空 blob 37060e8fae0c48651ca1e90123b68fd24416cc31
  1. 运行git pull,拉取云端配置
    注意:此操作只会填补悬空的文件,不会覆盖本地文件。如果不放心可以本地先备份。
(base) root@yyy-VMware-Virtual-Platform:~/test# git pull
remote: Enumerating objects: 309, done.
remote: Counting objects: 100% (309/309), done.
remote: Compressing objects: 100% (256/256), done.
remote: Total 309 (delta 68), reused 289 (delta 48), pack-reused 0 (from 0)
接收对象中: 100% (309/309), 3.33 MiB | 2.53 MiB/s, 完成.
处理 delta 中: 100% (68/68), 完成.
已经是最新的。
  1. 完成本地的.git文件恢复

http://www.kler.cn/a/318788.html

相关文章:

  • JVM详解:JVM的系统架构
  • GaussDB部署架构
  • 时序数据库TimescaleDB安装部署以及常见使用
  • DApp开发:定制化解决方案与源码部署的一站式指南
  • Linux设置socks代理
  • 计算机毕业设计必看必学35755flask旅游景区热度可视化平台原创定制程序,java、PHP、python、小程序、文案全套、毕设成品等
  • 考研日语 - 高频核心 2200 词(五)
  • 【算法】模拟:(leetcode)495.提莫攻击(easy)
  • linux服务器自动同步数据库
  • vue3腾讯云实时音视频通话 ui集成方案TUIcallkit
  • 富格林:可信交易筹划在线曝光
  • Python 解析 html
  • 股指期货理论价格计算公式是什么?
  • 【论文】FunAudioLLM:一个旨在增强人类与大型语言模型(LLMs)之间自然语音交互的模型家族
  • 如何在算家云搭建DiffSynth-Kolors-Painter(图像生成)
  • 【ARM】AMBA和总线
  • 详解机器学习经典模型(原理及应用)——随机森林
  • 【JS】严格模式/非严格模式的区别
  • Android 平台使用VIA创建语音交互应用开发指南
  • 更新C语言题目
  • 【linux】gcc makefile
  • 从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
  • IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等
  • 通过 OBD Demo 体验 OceanBase 4.3 社区版
  • 关于Hadoop的详细步骤及方案案例
  • python爬虫初体验(三)——将网页数据导出csv和excel文件