最近几次变基后,我看到了我认为是在变基期间创建的临时提交和分支。 据推测,这些应该被垃圾收集,但它们没有被收集。
我尝试搜索与“git垃圾收集”和“git孤儿分支/提交”相关的各种内容,但我找不到与此问题类似的任何内容。
我已经运行了
git gc --aggressive
和git fsck --full
,两者都很好,但没有帮助。
我不明白这些分支如何能够继续存在?我的理解是,任何未由提交或引用指向的提交都会被垃圾收集,所以为什么不是这些。
忽略这些有点烦人,因为它们使阅读图表变得更加困难。
如果您无法就直接问题提供建议,任何有关 Google 搜索内容的线索都会有所帮助。
问题似乎与引用日志中仍然存在的那些分支/提交有关。
我一直在变基并且已经这样做了很多年,所以我不知道为什么现在会出现这个问题。
我设法修复它:
git reflog expire --all --expire-unreachable=0
这会使旧的引用日志条目过期 - 在这种情况下,处理所有条目并使早于 0 天的无法访问的提交过期。
这让我相信,如果我等到提交后 30 天,那么它们就会在那时从引用日志和垃圾收集中过期。