uvs*_*tid 6 git git-submodules
比方说:
\n\n top.git \n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sub.git => 75fc7\nRun Code Online (Sandbox Code Playgroud)\n\ntop.git指.75fc7sub.gitsub.git既没有分支也没有导致提交75fc7(无法访问)的标签。最终是否会因为没有任何东西可以到达而sub.git对该提交进行垃圾收集?75fc7
AFAIK,Git 子模块的设计方式在本例中sub.git无法证明它是任何其他存储库的子模块。换句话说,提交75fc7实际上是垃圾收集的候选者。如果子模块可能“忘记”所需的提交,那么恢复所有子模块的状态将是不可靠的。
实际上,由于这个答案,测试很容易。
是的,即使顶级存储库引用了该提交,也会对其进行垃圾收集。
然后,它需要一些措施或规则来确定哪些提交可以在顶级存储库中使用,以便在将来的任何时间可靠地恢复整个树跨越子模块。此类提交必须是任何长期维护的分支或标签的祖先。