我有一个裸 git 存储库,根据git fsck --full
,它有大约 300 个悬空提交和标签。其中大约 90% 是悬空标签。
我不确定这些问题从何而来,但由于存储库似乎运行良好,所以它们可能已经存在一段时间了。
我想修复它们,但到目前为止,我尝试的所有方法都无法解决问题。到目前为止,我尝试了以下命令:
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git repack -a -d
我该如何修复这些悬空的提交和标签?它们真的有问题吗?重要的是我不会丢失历史记录和标签,而且我有点担心这么多悬空的标签。
此致
答案1
悬空提交和标签是“不可到达”的提交和标签,这意味着它们不是历史记录HEAD
或任何分支的一部分。当且仅当你当前没有错过任何提交时,那么你可以删除它们。要删除悬空提交,DrZoo 已经发布了一个很好的链接。使用 git 删除标签有时可能有点棘手。但你也可以手动删除标签。如果 git 说你有一个
dangling tag b61fdaf08acb1412b629b1913da21143775e523a
例如,您可以通过删除文件来删除它
repositoryfolder\.git\objects\b6\1fdaf08acb1412b629b1913da21143775e523a