在你决定克隆它之前,有什么方法可以看到gitub上的git repo有多大?这似乎是一个非常明显/基本的统计数据,但我根本找不到如何在github上看到它.
nul*_*ken 251
有一种方法可以通过GitHub API访问这些信息.
GET /repos/:user/:repo检索有关存储库的信息时,命名的属性将size使用整个存储库的大小(包括其所有历史记录)进行估值,单位为千字节.
例如,Git存储库的权重约为40Mb.size返回的JSON有效负载的属性值为124283.
根据服务器端裸存储库的磁盘使用情况,确实以千字节为单位表示大小.但是,为了避免使用大型网络的存储库浪费太多空间,GitHub依赖于Git Alternates.在此配置中,针对裸存储库计算磁盘使用量不考虑共享对象存储,因此通过API调用返回"不完整"值.
这些信息由GitHub支持提供.
Coa*_*ose 91
如果您拥有回购,您可以通过打开Account Settings > Repositories(https://github.com/settings/repositories)找到确切的大小,并在其名称旁边显示回购大小.
如果您不拥有存储库,则可以将其分叉,然后在同一位置进行检查.
有点hacky:使用该download as a zip file选项,读取指示的文件大小然后取消它.
我不记得下载拉链是否有效,但无论如何,这样做现在只下载当前选定的没有历史记录的分支.
Big*_*ave 72
如果您使用Google Chrome浏览器,则可以安装GitHub存储库大小扩展程序.
回复:https://github.com/harshjv/github-repo-size
NVR*_*VRM 34
从浏览器使用 JavaScript,因为Github API启用了CORS:
fetch('https://api.github.com/repos/webdev23/source_control_sentry')
.then(v => v.json()).then((v) => {
console.log(v['size'] + 'KB')
}
)Run Code Online (Sandbox Code Playgroud)
小智 15
@larowlan很棒的示例代码.使用新的GitHub API V3,需要更新curl语句.此外,不再需要登录:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
Run Code Online (Sandbox Code Playgroud)
woo*_*nan 10
如其他答案所示,可以通过 获取尺寸api.github.com。它位于size返回的 JSON 对象的属性中。
要获取它,只需向您的存储库 URL 添加一个额外的子域api并使用以下命令扩展存储库路径/repos:
# For public repos ->\n# Repo example: Axios\n# Repo URL: https://github.com/axios/axios\n \n \xe2\xa4\xb5 \xe2\xa4\xb5\ncurl https://api.github.com/repos/axios/axios\n\n# For private repos ->\n# Repo example: My-repo\n# Repo URL: https://github.com/my-org/my-repo\n\ncurl https://{username}:{api-token}@api.github.com/repos/{orgname}/{reponame}\n\nRun Code Online (Sandbox Code Playgroud)\n\n\n由于它只是 URL,因此您可以使用任何编程语言获取数据。
\n
响应将类似于:
\n// Much more props inside\n{\n "id": 23088740,\n "name": "axios",\n "full_name": "axios/axios",\n "private": false,\n "size": 4396,\n "default_branch": "v1.x",\n "visibility": "public",\n "network_count": 9581,\n "subscribers_count": 1213\n}\nRun Code Online (Sandbox Code Playgroud)\n对我们来说最重要的是size。它现在已经存在Kb,但将来可能会改变(就像已经发生的那样)。
但是...\n我测试了很多次,发现 repo 的实际大小和上述机制显示的大小相差太大。
\n让我们给出相同的axios存储库:
4396api.github.com -> Kb -> ~ 4.29Mb中显示的大小如果克隆完整的存储库会怎样:
\nclone repo.git使用命令拉取存储库du -sh ./axios8.0Mb.git从里面删除文件夹2.6Mb\n\n不好,因为
\nsize~4.29Mb 不是8,或者2.6Mb 也不是
如果仅克隆最新的提交会怎样:
\n--depth 1,例如clone repo --depth 1du -sh ./axios3.2Mb ( that\'s close).git从里面删除文件夹2.6Mb\n\n不好,因为
\nsize~4.29Mb 不是3.2,或者2.6Mb 也不是
如果只克隆一个分支怎么办:
\ndefault_branch. 让我们克隆-b v1.x --single-branch拉取带标志的存储库du -sh ./axios7.5Mb ( that\'s close).git文件夹给出相同的2.6Mb\n\n仍然不好,因为
\nsize〜Mb4.29不是7.5或者2.6Mb
因此,size参数显示的内容接近最新提交,但它不是存储库的完全正确的大小。
\n\n我在上面展示了它如何与
\naxios存储库配合使用,但是使用不同存储库进行的测试显示了相同的结果。
这是我的经验。
\n小智 8
用curl(sudo apt-get curl)和json pretty(sudo gem install jsonpretty json)做到这一点
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPO |
jsonpretty
Run Code Online (Sandbox Code Playgroud)
用您的git hub用户名替换YOURGITHUBUSERNAME(如图).用repo所有者的git用户名替换OWNER用repo名称替换REPO.
或者作为一个很好的bash脚本(将其粘贴在名为gitrepo-info的文件中)
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Usage: gitrepo-info <username> <owner> <repo>"
exit 65
fi
curl -u "$1" http://github.com/api/v2/json/repos/show/$2/$3|jsonpretty
Run Code Online (Sandbox Code Playgroud)
像这样使用
gitrepo-info larowlan pisi reel
Run Code Online (Sandbox Code Playgroud)
这将给我关于github上的pisi/reel repo的信息.
您所要做的就是转到 GitHub 设置存储库,您可以在浏览器中看到所有大小,无需额外工作。
https://github.com/settings/repositories
| 归档时间: |
|
| 查看次数: |
95201 次 |
| 最近记录: |