我使用bfg从git仓库一(克隆)删除一些子目录:混帐:使用高炉煤气重复后--prune空承诺
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
这工作不错,但我已经使用高炉煤气后,我有许多空提交(即提交良好的日志消息,但没有更改,因为他们只接触现在已被删除的文件)。
因此,作为下一步我试图用
git filter-branch --commit-filter 'git_commit_non_empty_tree "[email protected]"' HEAD
或
git filter-branch --prune-empty --tag-name-filter cat -- --all
两个版本没有收到预期的效果(除去空提交)。
相反,我结束了一个资料库,其中(见下面的截图,左边是修剪前,右边是后):
- 几个空的提交已被删除
- 最空提交保持
- 非空提交被复制在提交
有何建议?
你是如何创建'myrepo.git'的? - 根据BFG指导原则,它是一个裸/镜像存储库吗? – javabrett
我用'git clone --mirror https://:@git ....'。那是正确的方法吗? – fuenfundachtzig
是的。在“filter-branch”开始之前,你是否还推回并重新获取'origin'? – javabrett