1

我跑了:

git filter-branch --prune-empty --subdirectory-filter cannery/assemblies master

将一个大回购的克隆变成一个小得多的回购。

但是当我用结果推送 --tags 时,它似乎相当大:

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)

这真的是罐头厂/装配厂中的一小部分东西。

我是否以某种方式保留了大量我不想要的东西?我怎么知道?

4

2 回答 2

0

您的提交是孤立的。但是,它们需要一些时间才能被垃圾收集并减少 repo 的大小。

如果你想强制它运行:

git gc --prune=now --aggressive
于 2012-11-08T22:22:38.443 回答
0

github 上一位乐于助人的人提供了诊断。

这开始是一个相当大的 svn repo。它通过svn2git。到目前为止,svn 'tags' 引用了整个 repo 的适当子集。

然后我愚蠢地在 git 中运行了 maven-release-plugin 来获取我后来开始拆分成自己的 repo 的一小部分。这创建了一个引用整个 repo 的标签。

所以,当我过滤时,那个参考让整个射击比赛保持活力。

修复是删除这个标签,然后重新gc。

于 2012-11-12T03:32:09.490 回答