以下是我的存储库的gitk表示:
让我困惑的是,在高亮度的入口附近有一个叛逆的粉红色三角形。这是一个小小的不在任何分支上的代码星云。储藏室是空的,所以也不会藏在那里。
我不需要这个代码,但我很担心它还在潜伏…在我已知的仓库的边缘附近。
我怎样才能找到它并把它根除呢?
该问题可能是由于尝试重新设置分支,然后尝试通过重置和签出中止该操作而导致的。

最佳答案

这似乎是在启动gitk时隐藏的一些更改,然后从隐藏中删除,然后要求gitk更新显示。
当一个引用被删除时(就像从存储中删除某些内容一样),git不会立即删除被引用的提交和其他对象。相反,这些对象会在git的对象存储中保留一段时间,然后才有资格进行垃圾收集。这也适用于通过执行rebase或commit --amend而过时的对象。另外,当使用gitk中的update(f5)命令时,即使不再引用提交,也不会导致它从显示中移除提交。
要清除gitk中的显示,可以使用reload(ctrl+f5)命令,而不是update。至于从对象存储中删除那些最终将自动发生的项。您可以通过使用git gc指定带有--prune选项的日期来强制更快地执行此操作,但除非这些对象占用的空间会给您带来问题,否则我不建议您这样做。

09-04 21:21