经过反复地将存储库重新定义以适应我们的最新需求,我们的reflog中充满了提交和孤立分支。我们已经达到了重组的最终状态。
虽然仍有许多带有二进制数据的分支和提交,但存储库的大小已经增长了数倍,因此我们决定清除所有旧的reflog条目和数据。
我在手册中寻找答案,但使用git-reflog expire进行实验后并没有更聪明。
这是日志的一个示例(缩短了)
-> <sha1> [development] ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
-> <sha1> [master] ...
-> <sha1-old> ...
| <sha1-old> ...
| <sha1-old> ...
| <sha1-old> ...
| <sha1-old> ...
| <sha1-old> ...
| <sha1-old> ...
| <sha1-old> ...
-> <sha1-old> ...
如下所示,主分支下面有旧的提交和分支,记录了重组前的存储库。
我们希望清除reflog以使存储库看起来像:
-> <sha1> [development] ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
| <sha1> ...
-> <sha1> [master] ...
为了减少仓库所使用的磁盘空间,我们希望采取措施。我该如何实现这一目标?
编辑(2019年3月2日12:20)
请不要提到删除和重新克隆存储库。这不是我要找的。
编辑(2019年3月2日12:30)
我尝试过的,但没有成功的方法
git reflog expire --expire=all
什么都没有发生,所以我试图聪明地调用垃圾收集器
git gc --aggressive
但是虚假的。