在根据我们的最新需求对存储库进行了大量重新定位之后,我们的 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-03-02 12:20)
请不要提及删除并重新克隆存储库。这不是我要找的。
编辑(2019-03-02 12:30)
到目前为止我尝试过的但没有奏效的
git reflog expire --expire=all
什么都没有发生,所以我试图变得聪明并调用垃圾收集器
git gc --aggressive
但假的。