以下是gitk
我的存储库的表示:
让我困惑的部分是高亮入口附近的叛逆粉红色三角形。这是一个不在任何分支上的代码星云。储藏室是空的,所以它也没有藏在那里。
我不需要这段代码,但我很担心它仍然潜伏在我已知存储库边缘附近的某个地方。
我怎样才能找到它并根除它?
该问题可能是由于尝试重新设置分支然后尝试通过重置和签出中止该操作而引起的。
以下是gitk
我的存储库的表示:
让我困惑的部分是高亮入口附近的叛逆粉红色三角形。这是一个不在任何分支上的代码星云。储藏室是空的,所以它也没有藏在那里。
我不需要这段代码,但我很担心它仍然潜伏在我已知存储库边缘附近的某个地方。
我怎样才能找到它并根除它?
该问题可能是由于尝试重新设置分支然后尝试通过重置和签出中止该操作而引起的。
这似乎是在您启动 gitk 时隐藏的一些更改,然后从隐藏中删除,然后要求 gitk更新显示。
当一个引用被删除(就像从存储中删除一些东西一样)时,引用的提交和其他对象不会立即被 git 删除。相反,这些对象会在 git 的对象存储中保留一段时间,然后才能进行垃圾回收。这也发生在通过执行 rebase 或commit --amend
. 此外,当使用 gitk 中的Update ( F5) 命令时,即使不再引用它们也不会导致它从显示中删除提交。
要清理 gitk 中的显示,您可以使用Reload ( Ctrl+ F5) 命令而不是Update。至于从最终会自动发生的对象存储中删除那些项目。git gc
您可以通过使用选项指定日期来强制这种情况更快发生--prune
,但除非这些对象占用的空间导致您出现问题,否则我不建议您这样做。