我跑了一下:
git filter-branch --prune-empty --subdirectory-filter cannery/assemblies master将一个大的repo的克隆变成一个小得多的repo。
但是当我使用结果推送--标签时,它看起来相当大:
Counting objects: 36747, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13463/13463), done.
Writing objects: 100% (36713/36713), 65.47 MiB | 1.55 MiB/s, done.
Total 36713 (delta 14866), reused 36676 (delta 14854)这真的是罐头厂/组装厂的一小部分东西。
不知何故,我保留了一大堆我不想要的东西?我怎么知道呢?
发布于 2012-11-09 06:22:38
你的提交是孤立的。但是,它们需要一些时间才能被垃圾收集并减少repo的大小。
如果你想强制它运行:
git gc --prune=now --aggressive发布于 2012-11-12 11:32:09
github的一位乐于助人的人提供了诊断。
这开始是一个相当大的svn代码库。它通过了svn2git。到目前为止,svn“标签”引用了整个repo的适当子集。
然后,我愚蠢地运行了git中的maven-release-plugin,用于大repo的一小部分,后来我开始将其拆分成自己的repo。这创建了一个引用整个存储库的标记。
所以,当我过滤的时候,这个引用保持了整个射击比赛的活力。
修复方法是删除此标记,然后重新进行gc。
https://stackoverflow.com/questions/13272391
复制相似问题