解决git错误: error object file is empty , The remote end hung up unexpectedly

Bertha 。 2022-05-11 14:04 292阅读 0赞

今天执行git pull时遇到麻烦,应该是昨天电脑异常关机造成的git数据损坏:

  1. $git pull
  2. error: object file .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2 is empty
  3. error: object file .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2 is empty
  4. fatal: loose object 88526655aa4eca14ead2d443e80082276a79e0c2 (stored in .git/objects/88/526655aa4eca14ead2d443e80082276a79e0c2) is corrupt
  5. fatal: The remote end hung up unexpectedly

这种情况以前也偶尔遇到过,我当时的解决办法又笨又简单,就是删除当前代码重新从远程仓库下载一份代码,反正只要确保远程仓库是最新完整的代码就没问题。
这次不同了,本地有不少花时间生成的中间结果代码,删除之后重建要花时间,所以就不想用这么笨的办法。
在stackoverflow上找到这篇文章《how to fix GIT error: object file is empty?》,几个answer提供了不同的解决方式,第一种方法,好烦好复杂,看不下去,后来发现国内不少翻译这篇文章的帖子,介绍的就是第一种方法。

而第二个answer提供的方法就简单明白许多,过程就三步:

在这里插入图片描述

于是尝试用这个办法:

step1:
删除所有因为数据损坏导致的空对象文件(remove any empty object files)。执行第一步没有任何输出

  1. $ find .git/objects/ -type f -empty | xargs rm

step2:
下载上一步删除的对象文件(fetch down the missing objects)

  1. $ git fetch -p
  2. error: refs/heads/master does not point to a valid object!
  3. error: refs/remotes/origin/master does not point to a valid object!
  4. error: refs/heads/master does not point to a valid object!
  5. error: refs/remotes/origin/master does not point to a valid object!
  6. error: refs/heads/master does not point to a valid object!
  7. error: refs/remotes/origin/master does not point to a valid object!
  8. error: refs/heads/master does not point to a valid object!
  9. error: refs/remotes/origin/master does not point to a valid object!
  10. error: refs/heads/master does not point to a valid object!
  11. error: refs/remotes/origin/master does not point to a valid object!
  12. remote: Counting objects: 118, done.
  13. remote: Compressing objects: 100% (113/113), done.
  14. remote: Total 118 (delta 92), reused 0 (delta 0)
  15. Receiving objects: 100% (118/118), 15.90 KiB | 0 bytes/s, done.
  16. Resolving deltas: 100% (92/92), completed with 26 local objects.
  17. From https://gitee.com/l0km/app
  18. * [new branch] master -> origin/master

step3:
做一次全面的存储对象检查(do a full object store check)

  1. $ git fsck --full
  2. Checking object directories: 100% (256/256), done.
  3. Checking objects: 100% (6619/6619), done.
  4. dangling commit 18086406efd2c3e37dc478744304dd2a758206bb
  5. dangling blob 760bbd43e62054478eb3edbffd88ea65adb3f094
  6. dangling commit fcc10548cc0d06de24b2903cf3ec745bb78185cb
  7. dangling blob 234ff40df2a81d1a2625aae8ef76f6c7c92dc5f6
  8. dangling blob 38e25f663bff5ebec04fa559500860e90fd4bf23
  9. dangling commit 406f700c73b3a263604fea2a464634b389153835
  10. dangling commit bcfcb27bfdb5d54b80557a9723bcbcab6b601a90

三步完成之后,再次执行git pull,错误消失,成功。

  1. $ git pull
  2. Updating 8852665..f66f1dd
  3. Fast-forward
  4. CMakeLists.txt | 4 +--
  5. dependencies/build_mgncs.sh | 1 +
  6. dependencies/cmake/Modules/FindLIBCONFIG.cmake | 4 ++-
  7. dependencies/cmake/Modules/FindMGNCS.cmake | 2 +-
  8. dependencies/cmake/Modules/FindMGPLUS.cmake | 2 +-
  9. dependencies/cmake/Modules/FindMGUTILS.cmake | 2 +-
  10. dependencies/cmake/Modules/FindMINIGUI.cmake | 2 +-
  11. dependencies/cmake/Modules/depcommon.cmake | 22 +++++++-----
  12. dependencies/mips_build_mgncs.sh | 47 +++++++++++++-------------
  13. facelock/CMakeLists.txt | 6 +++-
  14. 10 files changed, 52 insertions(+), 40 deletions(-)

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读