Git
對於 4 個不同的儲存庫,git fsck 失敗並出現相同的錯誤
我
git fsck
在一些儲存庫上執行命令,其中 4 個我得到了同樣的錯誤:error in tree b2b510c83ea553c587ebe5bc160e92cb7888393a: duplicateEntries: contains duplicate file entries error in tree b3969ac6fe6b6359d48006e6a4cf3ffd5a4350a3: duplicateEntries: contains duplicate file entries error in tree 5a7445940626358083a782ba5c81f956c7f82ac5: duplicateEntries: contains duplicate file entries
知道如何解決嗎?對所有人來說都完全一樣是什麼意思?
Git 將目錄的內容儲存在樹對像中。通常,樹對象應該按字節值按文件名排序。
此消息意味著那些特定的樹對象包含重複的條目,這是不應該的。無論您使用什麼工具來創建這些對象,都會創建損壞的對象,而 Git 現在正在抱怨。
要解決它,您應該首先停止使用任何造成這些問題的工具,以免使問題變得更糟。然後,您可以
git gc --prune=now
立即執行以刪除未使用的對象。然後您可以執行git fsck
以查看送出是否已消失;如果它們不在歷史記錄中,它們將被刪除。如果這不起作用,那麼您可以通過創建新儲存庫並執行類似以下內容來重寫儲存庫:
git fast-export --all | (cd /empty/repository && git fast-import)
這必然會重寫您的一些對象 ID,但 Git 在寫入新儲存庫時不會導入重複的值。