我使用 git-subtree 添加了一个 git 存储库。问题是我硬重置回使用 git-subtree 添加存储库之前。现在提交历史记录仍在存储库中,但已与主服务器断开连接。
知道如何删除它吗?我尝试了 git rm --cached 但没有成功。
要立即删除已经无法访问的提交(子树提交就是这种情况),您可以使用以下命令:
git reflog expire --all --expire-unreachable=0
git repack -A -d
git prune
git gc
不会立即收集无法访问的提交,因为这些(在默认配置中)需要首先过期,然后才不会与其他可访问的提交打包在一起。一段时间后,这种情况会自行发生,或者您可以使用上面的命令强制执行。
还要考虑到对子树提交的任何引用都会阻止它们被收集,这包括分支、标签和引用日志引用。确保您确实没有对这些提交的悬而未决的引用。
这里还有一个关于如何处理无法访问的提交的更详细的问题:
git 中的垃圾收集提交 https://stackoverflow.com/questions/14991916/garbage-collect-commits-in-git
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)