2011-12-23 58 views
1

Git版本1.7.7.4無效的對象試圖克隆庫

我就從我的混帳程序存儲庫克隆和我得到了以下錯誤:

remote: fatal: failed to read object a89f72f06a1f6f56f924b0e8ae9e33f477da8fcd: Invalid argument 
error: git upload-pack: git-pack-objects died with error. 
remote: aborting due to possible repository corruption on the remote side. 
fatal: early EOF 
fatal: git upload-pack: aborting due to possible repository corruption on the remote side. 
fatal: index-pack failed 

於是我就到庫本身進行檢查和我得到這個:

git fsck 
fatal: failed to read object 1aea37c864c6b5d0d60d6fc38117bc420671b692: Invalid argument 

那麼我這樣做是爲了嘗試解決問題:

git gc --prune 
fatal: failed to read object a89f72f06a1f6f56f924b0e8ae9e33f477da8fcd: Invalid argument 
error: failed to run repack 

無論如何,我可以解決這個問題嗎?

非常感謝,

回答

1

GIT中表示一切作爲對象的集合,無論是在磁盤上(作爲遊離物)中或在一包(作爲壓縮對象)。在克隆時,git會遍歷整個歷史記錄以確定要發送的對象。如果一個對象丟失了,那麼這是個壞消息 - 錯誤信息是正確的,這個版本庫可能會被破壞(或者是一個鬆散的對象丟失了,或者可能是整個包)。

您可能試圖克隆不同的分支。如果步行者沒有碰到那個丟失的物體,你會沒事的。如果你感覺瘋狂,你可以深入研究git存儲數據結構,看看你是否可以手動修補歷史(這將是難以置信的困難,但並非不可能)。

否則 - 它是混帳。如果你最近做了任何克隆,恭喜你,你有一個完整的備份。從你的克隆回購推,並填補缺少的對象。

祝你好運。

+0

如果您有一個好的存儲庫,可以很容易地複製該對象。見http://stackoverflow.com/questions/801577/how-to-recover-git-objects-damaged-by-hard-disk-failure – 2011-12-23 05:32:37