我在当前文件和外部驱动器上的文件备份之间运行差异检查器,我发现 git repo 和它的备份之间存在一些差异。唯一的区别是左侧 .git/objects 下的一些额外文件和右侧两个空白 .git/objects/info 和 .git/objects/pack 文件夹。我做了一个快速git show
的git log
两边,它给出了相同的输出。
然后我做了一个git fsck --no-reflogs
, 并在左侧发现了一个额外的悬空提交。迭代git ls-tree
地向下执行那个额外的提交给了我一堆树和 blob,它们占除了左侧的一个额外文件之外的所有文件。
使用git cat-file -t <sha1>
最后一个文件告诉我这是一棵树。但是,我git ls-tree
在每次提交时都使用过,但仍然没有找到对这个神秘树对象的引用。那么这个文件究竟是从哪里来的呢?我 99.99% 肯定没关系,只是好奇:P