2014-04-28 41 views
1

因此作出承諾,我的回購週五我已經走在今天上午有這樣的錯誤做一個git的狀態致命的:寬鬆對象的Git

error: object file .git/objects/7f/01a815152d84c99ebdffcb048b612a8a4959d2 is empty 
fatal: loose object 7f01a815152d84c99ebdffcb048b612a8a4959d2 (stored in  .git/objects/7f/01a815152d84c99ebdffcb048b612a8a4959d2) is corrupt 

請告訴我奇怪的是我上週六克隆這另一臺機器上時,後這很好,甚至推動了新的變化。我的問題是爲什麼我得到這個錯誤信息?是什麼原因造成的它現在頻繁發生在一些項目上,我想找到根本原因

有沒有人有過這種類型的錯誤的經驗?

謝謝

回答

1

您的回購中存在損壞的對象。最簡單的做法是放棄它,並恢復到其中一個無損備份 - 您表示您擁有一個很好的克隆 - 用它來代替。

如果你想進一步追求,你可以嘗試從其他非腐敗回購或其他人那裏恢復對象,但這需要一些低級別的git調試。

如果對象是blob,您可以在Linus的Some tricks to reconstruct blob objects in order to fix a corrupted repository中找到一個快速總結,試圖恢復它,但是如果損壞的對象是一棵更麻煩的樹 - 您可能必須手動重建樹創建正確的分期和使用git write-tree

要決定你可以備份和刪除有問題的對象,然後運行git-fsck --full你應該能夠推斷出你是否有一個壞樹或一個blob:

$ git fsck --full 

broken link from commit <sha-commit> 
       to tree <sha-tree-1> 
missing tree <sha-tree-1>  
... 
broken link from tree <sha-tree-2> 
       to blob <sha-blob> 
missing blob <sha-blob> 

而且看,

相關問題