我有一个Git存储库,其中有很多提交,没有特定的分支,我可以git show,但是当我尝试列出包含它们的分支时,它没有报告任何内容.
我认为这是悬挂的提交/树问题(由于-D分支),所以我修剪了回购,但之后我仍然看到相同的行为:
$ git fetch origin
$ git fsck --unreachable
$ git fsck
Run Code Online (Sandbox Code Playgroud)
没有输出,没有悬空(对吧?).但提交存在
$ git show 793db7f272ba4bbdd1e32f14410a52a412667042
commit 793db7f272ba4bbdd1e32f14410a52a412667042
Author: ...
Run Code Online (Sandbox Code Playgroud)
它不能通过任何分支到达
$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042
Run Code Online (Sandbox Code Playgroud)
没有输出.
这个提交的状态究竟是什么?如何列出处于类似状态的所有提交?如何删除那些提交?
在我的个人git仓库中,我有一个包含数千个不再需要的小图像的目录.有没有办法从整个git历史中删除它们?我试过了
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch imgs" HEAD
Run Code Online (Sandbox Code Playgroud)
和
git filter-branch --tree-filter 'rm -fr imgs' HEAD
Run Code Online (Sandbox Code Playgroud)
但是git repo的大小保持不变.有任何想法吗?
谢谢