我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
以查看提交是否已消失;如果它们不在历史记录中,它们将被删除。如果这不起作用,那么您可以通过创建新存储库并运行类似以下内容来重写存储库:
这必然会重写您的一些对象 ID,但 Git 在写入新存储库时不会导入重复的值。