最终我成功解决了这个问题。
我认为问题发生在电脑由于断电而关闭时。
我无法提交任何本地分支中的更改。这意味着我的包文件未受损,但某些引用无效。
首先备份你的.git
文件夹。然后使用git fsck
命令。
$ 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
我删除了文件 .git/objects/38/fe6f16c7e8246d61150f0bc42629dbb532b5ce
,然后按照这些步骤继续操作,直到获得以下输出:
$ 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
...
现在我删除了所有三个引用(.git/refs/remotes/origin/master
,.git/refs/remotes/origin/staging
,.git/refs/remotes/origin/development
)
看,现在我可以进行拉取和推送了!
P.S. 参考自这里
8b/0fd4094630fea108b60faa15535ffbc85d87cb
时,它的内容是0000 0000
或NULL NULL NULL...
。 - Vikas