查找Git存储库大小的简单方法是什么?
我指的不是存储库根目录上的du -h。我有很多被忽略的文件,所以这个大小与我的总存储库大小不同。实际上,我想知道克隆存储库时会传输多少数据。
查找Git存储库大小的简单方法是什么?
我指的不是存储库根目录上的du -h。我有很多被忽略的文件,所以这个大小与我的总存储库大小不同。实际上,我想知道克隆存储库时会传输多少数据。
当前回答
如果存储库在GitHub上,您可以使用开源Android应用程序Octodroid,该应用程序默认显示存储库的大小。
例如,使用mptcp存储库:
免责声明:我并没有创造Octodroid。
其他回答
如果你使用git LFS, git count-objects不会计算你的二进制文件,而只计算指向它们的指针。
如果你的LFS文件是由Artifactorys管理的,你应该使用REST API:
从任何搜索引擎获取www.jfrog.com API 查看获取存储摘要信息
更新git 1.8.3引入了一个更有效的方法来获得一个大致的大小:git count-objects -vH(参见@VonC的回答)
对于“完全大小”的不同概念,你可以使用:
git bundle create tmp.bundle --all
du -sh tmp.bundle
接近(但不精确:)
git gc
du -sh .git/
如果是后者,你还可以计算:
钩子 配置(远程,推送分支,设置(空白,合并,别名,用户 细节等) stashes(参见我能从远程回购取一个存储到本地分支吗?也) Rerere缓存(可以获得相当大的缓存) reflogs 备份(从过滤器分支,例如)和各种其他东西(中间 状态从重基,等分等)
如果你已经将git存储库推送到github,这个答案也适用。
您可以在Accounts设置中轻松找到每个存储库的大小
如果存储库在GitHub上,您可以使用开源Android应用程序Octodroid,该应用程序默认显示存储库的大小。
例如,使用mptcp存储库:
免责声明:我并没有创造Octodroid。
我认为这给了你回购历史中所有文件的总列表:
git rev-list --objects --all | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc
你可以用一个树(HEAD, origin/master等)替换——all来计算分支的大小。