在git中,悬空提交和悬空blob之间有什么区别?

ved*_*ang 3 git git-dangling

当我这样做时git fsck,我会看到悬挂物体的清单.其中一些被称为悬挂提交,而另一些被称为悬空blob.我想知道这两者之间究竟有什么区别.

Raf*_*cki 5

Git为存储库中的每个文件创建blob(除非已存在相同的内容).悬空blob是与任何提交无关的blob,除非您的存储库在磁盘发生故障等情况下被破坏,否则没有多大用处.

你可以看到他们的内容git show <blob SHA-1>.

悬挂提交,是提交,无法从HEAD任何分支到达.您仍然可以使用它们,例如通过调用git cherry-pick <SHA-1>git reset <SHA-1>.

Scott Chacon的Git用户手册中有更多解释.