Git

對於 4 個不同的儲存庫,git fsck 失敗並出現相同的錯誤

  • March 10, 2020

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 在寫入新儲存庫時不會導入重複的值。

引用自:https://unix.stackexchange.com/questions/570121