开源项目 Git Clone Ruby China 时有一个文件十多兆,是什么文件?

kevinhua · 2012年03月14日 · 最后由 Saito 回复于 2012年03月16日 · 4031 次阅读

Git Clone Ruby China 时有一个文件十多兆,是什么文件?

Digg Ruby-china Repository.find the biggest file.

count objects

git count-objects -v

count: 0 size: 0 in-pack: 10427 packs: 2 size-pack: 36580 prune-packable: 0 garbage: 0

verify large object

git verify-pack -v .git/objects/pack/pack-973f7e7ea112b16e3f72256eab8d1454a881f181.idx | sort -k 3 -n | tail -5

23c8e3d4485f80fd3f7e6887d7c0cf98b74548c2 blob 2736914 2730078 17805396 aa083cfae839f1bcb53eae359b16efdd45eac952 blob 3046496 880549 30567654 adc821a2ad0123979e9047c56ce63164a9f3e6d7 blob 3729280 1348177 32708969 dcd276a066571d536c0c8c26008174a64f1cac6e blob 7151216 1899023 26113407 83c8f8c888e633ede1232b190aab096e08468ade blob 16536166 16279903 1525493

find object name

git rev-list --objects --all | grep 83c8f8c88

83c8f8c888e633ede1232b190aab096e08468ade packages/coreseek-3.2.13.tar.gz

check the commitlog

git log --pretty=oneline -- packages/coreseek-3.2.13.tar.gz

ff9945654957dd8a8ad4b5e47ab25818f03d81c2 1. Removed chat feature; 2. Update to Rails 3.1.1; 3. Remove unused files; 4. Fix image size in reply 5d44b9e770bdf7abe47111296c13fd873dc4504a Archive Coreseek as package

#1 楼 @Saito 要怎么减负呢?

#2 楼 @Rei git filter-branch 可以做到。但是从添加文件的 commit 开始之后的 commits 都会被修改。

现在再改感觉有点晚了。因为之后的 commits 太多了。

历史里面有当年加的 coreseek 安装包,找出来,清理掉吧。

@huacnlee 我刚才按 @quakewang 提供的文章操作了一下,马上就从 43MB 降到 23MB. 但如 @Saito 所说,会修改整个 history 记录 (刷 MD5 码的时候像在暴力破解... XD ) 这个还是由项目管理组成员来操作吧。这个不知道能不能 pull request 的...

修改整个 history,不知道 136 位 forks 能不能情绪稳定……

#7 楼 @Rei 我表示压力不大。

@Rei 那个数很虚的,实际有在操作的很少的..... 按照大家只要 git rebase 一下就差不多了. 我刚才试着 compare 了以下...

This comparison is big! We're only showing the most recent 250 commits

一共有 861 个 commits..!!

这事情我已经干了....你们 fork 的试试什么状况

实在情绪不稳定的就 git reset --hard huacnlee/master 一下。

BTW,API 那个分支打算直接删掉再从 master checkout 一份出来。

#6 楼 @ichord SHA1.. 不是 MD5. XDDD

其实主要是之前 fork 的 pull-request merge 不回来了。

kevinhua 关闭了讨论。 10月10日 10:27
需要 登录 后方可回复, 如果你还没有账号请 注册新账号