我正在使用bfg从(克隆)git 存储库中删除一些子目录:
java -jar bfg-1.12.12.jar --delete-folders {folder1,folder2,folder3} --no-blob-protection myrepo.git/
git reflog expire --expire=now --all && git gc --prune=now --aggressive
这工作正常,但是在我使用 bfg 之后,我有许多空提交(即提交带有很好的日志消息但没有更改,因为它们只涉及现在已删除的文件)。
所以作为下一步我尝试使用
git filter-branch --commit-filter 'git_commit_non_empty_tree "$@"' HEAD
或者
git filter-branch --prune-empty --tag-name-filter cat -- --all
两个版本都没有预期的效果(删除空提交)。
相反,我最终得到的是一个存储库(见下面的截图,左边是修剪前,右边是修剪后):
- 一些空提交已被删除
- 大多数空提交仍然存在
- 非空提交在不同的提交序列中重复
有什么建议吗?