昨天我队的一张签到了我们的github回购.在github上,他们显示了这个错误:
$ git fsck
error: sha1 mismatch 87859f196ec9266badac7b2b03e3397e398cdb18
error: 87859f196ec9266badac7b2b03e3397e398cdb18: object corrupt or missing
missing blob 87859f196ec9266badac7b2b03e3397e398cdb18
Run Code Online (Sandbox Code Playgroud)
当我试图拉到另一台机器时,我得到了这个:
Hyperion:Convoy-clone saalon$ git fsck
warning in tree 5b7ff7b4ac7039c56e04fc91d0bf1ce5f6b80a67: contains zero-padded file modes
warning in tree 5db54a0cdcd5775c09365c19c061aff729579209: contains zero-padded file modes
broken link from tree 6697c12387f8909cfe7250e9d5854fd6713d25c1
to blob 87859f196ec9266badac7b2b03e3397e398cdb18
dangling tree 144becf61ae14cec34b6af1bd8a0cf4f00d346d1
missing blob 87859f196ec9266badac7b2b03e3397e398cdb18
Run Code Online (Sandbox Code Playgroud)
(我在有问题的机器和我拉到的第二台机器上得到了零填充文件警告.我只在第二台机器上得到了断开的链接错误).
我将blob跟踪到特定文件,这是问题所在,但在完成Git FAQ修复断链错误的过程后,我没有运气.
我浏览了Github的文档,找到了一个从github中删除主仓库并从违规机器中删除的过程.我试过这个,但是当我去重新推动master分支时,我收到了以下错误:
fatal: SHA1 COLLISION FOUND WITH 87859f196ec9266badac7b2b03e3397e398cdb18 !
error: unpack failed: index-pack abnormal exit
Run Code Online (Sandbox Code Playgroud)
我和Github有一张开放的票,但它会让他们永远回应.知道问题可能是什么?Github是否存在需要修复的问题,或者我可以采取哪些措施来解决这个问题?
我的开发存储库在某些时候丢失了一个对象.
$ git fsck
fatal: failed to read object 2dddc84156fa30e4614a7ea5a1895885011b8db8: Invalid argument
$ git cat-file -t 2dddc84156fa30e4614a7ea5a1895885011b8db8
error: unable to find 2dddc84156fa30e4614a7ea5a1895885011b8db8
fatal: git cat-file 2dddc84156fa30e4614a7ea5a1895885011b8db8: bad file
Run Code Online (Sandbox Code Playgroud)
新近克隆的存储库具有该对象.
$ git cat-file -t 2dddc84156fa30e4614a7ea5a1895885011b8db8
tree
Run Code Online (Sandbox Code Playgroud)
我想保留我的开发存储库,它已经拆除了分支和存储.
如何将该对象修补到我破损的存储库中?
这是关于Git仓库被破坏的众多问题之一,正是一个出错的松散对象:
$ git gc
Counting objects: 3299, done.
error: inflate: data stream error (unknown compression method)
error: unable to unpack 831a5d31af4a0af2f5a367689bee27a44efc22c9 header
Delta compression using up to 6 threads.
Compressing objects: 100% (3283/3283), done.
error: inflate: data stream error (unknown compression method)
fatal: loose object 831a5d31af4a0af2f5a367689bee27a44efc22c9 (stored in .git/objects/83/1a5d31af4a0af2f5a367689bee27a44efc22c9) is corrupt
error: failed to run repack
Run Code Online (Sandbox Code Playgroud)
关于这个问题的现有答案(如何处理损坏的git对象文件?, 如何修复损坏的git存储库?或者由于缺少对象而导致Git损坏怎么办?)我已经831a5d31从损坏的存储库中删除了对象.
在我的情况下,我有一个存储库的克隆,似乎保存我缺少的对象,但没有文件objects/83/1a5d31af4a0af2f5a367689bee27a44efc22c9.如何修复我的存储库?