2011-11-18 1954 views
193

什么是简单的方法来查找我的仓库仓库的大小?我的回购的根目录上并不意味着du -h。我有很多被忽略的文件,因此大小会与我的总回购大小不同。我基本上想知道在克隆我的回购库时将转移多少数据。查找git仓库的大小

+0

[请参阅克隆它之前github回购的大小?](https://stackoverflow.com/questions/8646517/see-the-size-of-a-github-repo-before-cloning-it) – azzamsa

回答

185

UPDATE git的1.8.3推出了更有效的方式来获得一个粗略的大小:git count-objects -vH(见答案由@VonC)

对于 “完整尺寸” 不同的想法,你可以使用:

git bundle create tmp.bundle --all 
du -sh tmp.bundle 

关闭(但不是精确的:)

git gc 
du -sh .git/ 

对于后者,你也将是计数:

  • 配置(遥控器,推分行,设置(空格,合并,别名,用户 细节等)
  • 储物箱(见Can I fetch a stash from a remote repo into a local branch?也)
  • rerere缓存(其可以得到相当大的)
  • reflogs
  • 备份(从过滤器分支,例如)和各种其他的事情(中间体0从底垫状态,对开等)
+0

谢谢!第一种行为更准确地反映了总的克隆大小,但第二种行为也非常接近。 – mschallert

+4

注意:这个答案已过时。请参阅VonC的[回答](http://stackoverflow.com/a/16163608/241536),而不是git版本> = 1.8.3。 –

+0

请注意,我的答案是一种更完整的方式,这可能有其自身的优点。 – sehe

89

的混帐命令

git count-objects -v 

会给你git仓库的大小的一个很好的估计。没有-v标志,它只会告诉你解压缩文件的大小。这个命令可能不在你的$ PATH中,你可能不得不跟踪它(例如,在Ubuntu上我发现它在/ usr/lib/git-core /中)。

从Git的手册页:

-v,--verbose

除了散装物品和磁盘空间的数量消耗, 它报告在包对象的数量,包的数量,磁盘 这些包所消耗的空间以及可以通过运行git prune-packed删除的对象的数量 。

你的输出将类似于以下内容:

count: 1910 
size: 19764 
in-pack: 41814 
packs: 3 
size-pack: 1066963 
prune-packable: 1 
garbage: 0 

您正在寻找该生产线是size-pack。这是所有压缩提交对象的大小,或者是新克隆存储库的最小可能大小。

+4

根据我的经验,'git-count-objects -v'在'git-count-objects -v'没有(因为它不在我的PATH中)时有效。 – mwolfetech

+0

它没有按预期工作,总是生成大小包:0 – psihodelia

+5

@psihodelia看起来你可能需要在运行git count-objects -v之前运行'git gc',因为你的版本库可能还没有打包。在这里看到第一个答案的证据:http://stackoverflow.com/questions/3532740/do-i-ever-need-to-run-git-gc-on-a-bare-repo –

164

需要注意的是,由于git 1.8.3 (April, 22d 2013)

git count-objects” 教训 “--human-readable” 又名 “-H” 选项,在缩放必要Ki/Mi/GiB显示各种大量涌现。

这可能与Jack Morrisonhis answer提到-v选项结合使用。

git gc 
git count-objects -vH 

git gc很重要,因为通过A-B-Banswer提到)

加号(尚的git 1.8.3),输出更加完整:

git count-objects -v” 学会了报告对象存储中剩余的临时包文件和其他垃圾。

0

如果你使用git LFS,git count-objects不会计算你的二进制文件,而只是指向它们的指针。

如果你的LFS文件被Artifactorys管理,您应该使用REST API:

  • 从任何搜索引擎获取www.jfrog.com API
  • 看获取存储摘要信息
+0

尽管此链接可能回答此问题,但仅在Stack Overflow可以通过将链接的重要部分放入您的答案来改善此答案,这可以确保您的答案仍然是答案,如果链接被更改或删除:) – WhatsThePoint