查找Git存储库大小的简单方法是什么?

我指的不是存储库根目录上的du -h。我有很多被忽略的文件,所以这个大小与我的总存储库大小不同。实际上,我想知道克隆存储库时会传输多少数据。


当前回答

我认为这给了你回购历史中所有文件的总列表:

git rev-list --objects --all | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc

你可以用一个树(HEAD, origin/master等)替换——all来计算分支的大小。

其他回答

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

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

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

注意,从git 1.8.3(2013年4月22日)开始:

“git计数对象”——人类可读的“又名“-H”选项,显示各种大数字在Ki/Mi/GiB按比例缩放必要。

这可以与Jack Morrison在他的回答中提到的-v选项结合起来。

git gc
git count-objects -vH

(正如A-B-B的回答所提到的,git gc很重要)

加上(仍然是git 1.8.3),输出更完整:

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

我认为这给了你回购历史中所有文件的总列表:

git rev-list --objects --all | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc

你可以用一个树(HEAD, origin/master等)替换——all来计算分支的大小。

如果你已经将git存储库推送到github,这个答案也适用。

您可以在Accounts设置中轻松找到每个存储库的大小

如果存储库在GitHub上,您可以使用开源Android应用程序Octodroid,该应用程序默认显示存储库的大小。

例如,使用mptcp存储库:

免责声明:我并没有创造Octodroid。