每http://snipplr.com/view/11513/ ,我试过了
$ git reflog expire --expire=1.minute refs/heads/master
$ git fsck --unreachable # now I see those tarball blobs!
$ git prune # hasta la vista, baby
$ git gc # cleanup and repack the repo
但这没有帮助,我仍然可以通过哈希码 checkout 。
最佳答案
您链接到的命令不起作用,因为 git gc
默认情况下不会删除任何少于两周的内容,因此您需要指定要删除所有内容:
git reflog expire --expire-unreachable=now
git gc --prune=now
对 git prune 的调用是多余的,因为 git gc 无论如何都会调用它。对 git fsck 的调用仅用于显示目的,不需要运行。
请注意,这些命令将使其无法恢复任何其他无法访问的提交,当然,引用日志将被清除,使其任何良好的回滚功能都无法用于过去的历史记录。
关于git - git 重置后完全删除 git 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9696136/