我有这样的 git 提交历史记录:
U
/
A---B---C---D---E master
没有任何内容指向提交U
,但我知道它的哈希值。如何从我的存储库中完全删除此提交,就好像它从未存在过一样?我是唯一使用此存储库的人。
我尝试使用git rebase
,但这可以删除分支的一部分或移动提交,但似乎无法删除单个提交。
If I do git checkout <hash>
进而git reset --hard HEAD~1
我再也看不到提交了。它实际上已经完全消失了还是仍然隐藏在存储库中?
如上所述here,只需使用
git reflog expire --expire-unreachable=now --all
git gc --prune=now
git reflog expire --expire-unreachable=now --all
删除所有无法访问的提交的引用reflog
.
git gc --prune=now
删除提交本身。
注意力:仅使用git gc --prune=now
将不起作用,因为这些提交仍然在引用日志中引用。因此,清除 reflog 是强制性的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)