git致命:无法读取对象xxx:无效的参数 [英] git fatal: failed to read object xxx: Invalid argument

查看:2750
本文介绍了git致命:无法读取对象xxx:无效的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我从远程访存获取以下错误:

  $ git pull 
remote:计数对象:85,完成。
remote:压缩对象:100%(37/37),完成。
remote:合计85(增量63),重复使用69(增量48)
开箱对象:完成100%(85/85)。
错误:inflate:数据流错误(未知压缩方法)
致命:无法读取对象8b0fd4094630fea108b60faa15535ffbc85d87cb:无效参数
错误:http://myremoterepo.com/project.git未发送所有必需的对象

我可以在本地提交。当我检查状态时:

 > $ git status分支vikas你的分支是基于'origin / master',
>但上游消失了。 (使用git branch --unset-upstream到
> fixup)没有提交,工作目录干净


解决方案

最后我能解决这个问题。
我认为当我的电脑由于停电而关机时,问题发生了。



我能够在我的任何本地分支中提交任何更改。这意味着我的包文件没有损坏,但一些裁判无效。



首先备份您的 .git 。然后我使用 git fsck 命令

  $ git fsck --full 
错误:inflate:数据流错误(未知压缩方法)
错误:无法解压38fe6f16c7e8246d61150f0bc42629dbb532b5ce头部
错误:膨胀:数据流错误(未知压缩方法)
致命:松散物体38fe6f16c7e8246d61150f0bc42629dbb532b5ce(保存在.git / objects / 38 / fe6f16c7e8246d61150f0bc42629dbb532b5ce中)已损坏

我删除了文件 .git / objects / 38 / fe6f16c7e8246d61150f0bc42629dbb532b5ce 并继续执行这些步骤,直到获得以下输出:

  $ git fsck --full 
检查对象目录:100%(256/256),完成。
检查对象:100%(168543/168543),完成。
错误:refs / remotes / origin / staging:无效的sha1指针0000000000000000000000000000000000000000
错误:refs / remotes / origin / development:无效的sha1指针0000000000000000000000000000000000000000
错误:refs / remotes / origin / master:无效的sha1指针00000000000000000000000000000000000000000000
错误:refs /远程/原产地/暂存
断开链接从提交8b0fd4094630fea108b60faa15535ffbc85d87cb
到提交bac9f287963b1abb9e4b376b44b4a6500018e9fe
检查连接:169821,完成。
悬挂一滴750718546640b5b14c19cbdb9958d7bcc4b1114c
悬挂一滴e313786318d4c76004728f15a25c6fa68c88b67e
悬挂一滴ee3fd85992b48173f6c344a9f4a2f9667d4e1940
悬挂一滴cd4898a3ec525e559292337c0bc6b68a77270b52
晃来晃去的blob 9973506f35af1bf4e7790be57b02c70852843f92
悬挂一滴47ca4080b9a528efe23c9f7dce994815f5f9162a
悬挂一滴39d6807d215a7e74fb987d951a90e1d3e24a97eb
dangling blob c0d650286c3702d56b827eded27eaa9515212847
dangling commit 53db70d776ec7a59c10db106ef2585abea1ffddd
...

现在我删除了所有三个ref( .git / refs / remotes / origin / master .git / refs / remotes / origin / staging .git / refs / remotes / origin / development

瞧!现在我能够拉和推!



此处获悉


I am getting the following error if I pull for fetch from remote

$ git pull
remote: Counting objects: 85, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 85 (delta 63), reused 69 (delta 48)
Unpacking objects: 100% (85/85), done.
error: inflate: data stream error (unknown compression method)
fatal: failed to read object 8b0fd4094630fea108b60faa15535ffbc85d87cb: Invalid argument
error: http://myremoterepo.com/project.git did not send all necessary objects

I can commit locally. When I check status:

> $ git status On branch vikas Your branch is based on 'origin/master',
> but the upstream is gone.   (use "git branch --unset-upstream" to
> fixup) nothing to commit, working directory clean

解决方案

Finally I was able to fix this issue. I think issue happened when my computer shutdown due to power cut.

I was able to commit any changes in any of my local branch. This means my pack file is no corrupted but some refs are invalid.

Back up your .git first. Then I use git fsck command

$ git fsck --full
error: inflate: data stream error (unknown compression method)
error: unable to unpack 38fe6f16c7e8246d61150f0bc42629dbb532b5ce header
error: inflate: data stream error (unknown compression method)
fatal: loose object 38fe6f16c7e8246d61150f0bc42629dbb532b5ce (stored in .git/objects/38/fe6f16c7e8246d61150f0bc42629dbb532b5ce) is corrupt

I deleted the file .git/objects/38/fe6f16c7e8246d61150f0bc42629dbb532b5ce and continuing these steps until I get following output:

$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (168543/168543), done.
error: refs/remotes/origin/staging: invalid sha1 pointer 0000000000000000000000000000000000000000
error: refs/remotes/origin/development: invalid sha1 pointer 0000000000000000000000000000000000000000
error: refs/remotes/origin/master: invalid sha1 pointer 0000000000000000000000000000000000000000
error: bad ref for refs/remotes/origin/staging
broken link from  commit 8b0fd4094630fea108b60faa15535ffbc85d87cb
              to  commit bac9f287963b1abb9e4b376b44b4a6500018e9fe
Checking connectivity: 169821, done.
dangling blob 750718546640b5b14c19cbdb9958d7bcc4b1114c
dangling blob e313786318d4c76004728f15a25c6fa68c88b67e
dangling blob ee3fd85992b48173f6c344a9f4a2f9667d4e1940
dangling blob cd4898a3ec525e559292337c0bc6b68a77270b52
dangling blob 9973506f35af1bf4e7790be57b02c70852843f92
dangling blob 47ca4080b9a528efe23c9f7dce994815f5f9162a
dangling blob 39d6807d215a7e74fb987d951a90e1d3e24a97eb
dangling blob c0d650286c3702d56b827eded27eaa9515212847
dangling commit 53db70d776ec7a59c10db106ef2585abea1ffddd
...

Now I removed all three refs (.git/refs/remotes/origin/master, .git/refs/remotes/origin/staging, .git/refs/remotes/origin/development)

Voila! Now I was able to pull and push!

P.S. learned from here

这篇关于git致命:无法读取对象xxx:无效的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆