git重置后完全删除git对象
我试过了git重置后完全删除git对象,git,Git,我试过了 但是它没有帮助,我仍然能够通过哈希代码进行签出。除其他外,您还需要使头的reflog过期,以便取消对提交的引用。您链接到的命令不起作用,因为默认情况下,git gc不会删除少于两周的任何内容,因此,您需要指定要删除所有内容: git reflog expire --expire-unreachable=now git gc --prune=now 对git prune的调用是多余的,因为git gc无论如何都会调用它。对git fsck的调用仅用于显示目的,无需运行 请注意,这些命令
但是它没有帮助,我仍然能够通过哈希代码进行签出。除其他外,您还需要使
头的reflog过期,以便取消对提交的引用。您链接到的命令不起作用,因为默认情况下,git gc
不会删除少于两周的任何内容,因此,您需要指定要删除所有内容:
git reflog expire --expire-unreachable=now
git gc --prune=now
对git prune
的调用是多余的,因为git gc
无论如何都会调用它。对git fsck的调用仅用于显示目的,无需运行
请注意,这些命令将导致无法恢复任何其他无法访问的提交,当然,reflog将被清除,使得它的任何优秀回滚功能在过去的历史中都不可用。git reflog--expire unreachable=now致命:无法识别的参数:--expire unreachable=now正确的语法似乎是:git reflog expire--expire unreachable=now不幸的是,在gc之后我仍然能够签出是的,你是对的,我已经更新了。有问题的提交散列是否出现在git fsck--unreachable
?确保您没有引用提交git标记--contains
和git分支-a--contains
,然后重新打包。您可能需要将--rewrite
选项添加到git reflog expire
,请参阅,以获取更多有关从Reflogo中过期的内容的信息。您可以解释如何使HEAD的reflog过期吗?是:git reflog expire--expire unreachable=now除了使用HEAD
之外,它与refs/heads/master
的命令相同。请注意,除非丢弃的提交占用大量磁盘空间或存在安全风险,否则您可以忽略此操作,它最终会自行处理。
git reflog expire --expire-unreachable=now
git gc --prune=now