在你决定克隆它之前,有没有办法看看GitHub上的Git存储库有多大?
这似乎是一个非常明显/基本的统计数据,但我根本找不到如何在GitHub上看到它。
在你决定克隆它之前,有没有办法看看GitHub上的Git存储库有多大?
这似乎是一个非常明显/基本的统计数据,但我根本找不到如何在GitHub上看到它。
当前回答
如果您试图找出您自己的存储库的大小。
你所要做的就是去GitHub设置存储库,你可以在浏览器中看到所有的大小,不需要额外的工作。
https://github.com/settings/repositories
其他回答
如果您拥有存储库,您可以通过打开帐户设置→存储库(https://github.com/settings/repositories)找到确切的大小,存储库的大小显示在其名称旁边。
如果您不拥有存储库,则可以对其进行分叉,然后在同一位置检查。
注意:您可能是拥有多个存储库的组织的所有者,但在组织内的特定存储库中没有角色。默认情况下,即使您在自己拥有的组织中创建了存储库,也不会添加到repo,因此在设置/存储库中看不到该repo。所以把自己添加到存储库设置(https://github.com/org-name/repo-name/settings)中,在https://github.com/settings/repositories中看到它
有点hack:使用下载压缩文件选项,读取文件大小指示,然后取消它。
我不记得以zip格式下载是否有效,但无论如何,现在这样做只下载当前选择的没有历史记录的分支。
正如其他答案所示,可以通过api.github.com获得大小。它在返回的JSON对象的size属性中。
要得到它,只需在你的回购URL中添加一个额外的子域api,并使用/repos扩展回购路径:
# For public repos ->
# Repo example: Axios
# Repo URL: https://github.com/axios/axios
⤵ ⤵
curl https://api.github.com/repos/axios/axios
# For private repos ->
# Repo example: My-repo
# Repo URL: https://github.com/my-org/my-repo
curl https://{username}:{api-token}@api.github.com/repos/{orgname}/{reponame}
由于它只是URL,您可以使用任何编程语言获取数据。
回复会是这样的:
// Much more props inside
{
"id": 23088740,
"name": "axios",
"full_name": "axios/axios",
"private": false,
"size": 4396,
"default_branch": "v1.x",
"visibility": "public",
"network_count": 9581,
"subscribers_count": 1213
}
对我们来说最重要的是尺寸。它现在以Kb为单位,但将来可能会更改(因为它已经被更改了)。
但是… 我测试了很多次,看到回购的实际大小和上面机制显示的大小太不一样了。
让我们给出相同的axios repo:
大小显示在api.github.com -> 4396 Kb -> ~4.29 Mb
如果克隆一个完整的回购:
用克隆回购拉回购。git命令 使用命令du -sh ./axios获取权重 have -> 8.0 Mb 从里面删除。git文件夹 有-> 2.6 Mb
不太好,因为大小~4.29 Mb也不是8或2.6 Mb
如果只克隆最新的提交:
拉—depth 1标志的回购,就像克隆回购—depth 1一样 使用命令du -sh ./axios获取权重 3.2 Mb(接近) 从里面删除。git文件夹 有->相同2.6 Mb
不太好,因为大小~4.29 Mb也不是3.2或2.6 Mb
如果只克隆一个分支:
在上面的JSON中,我们有一个名为default_branch的参数。让我们克隆 用- bv1进行回购。X——单分支标志 使用命令du -sh ./axios获取权重 7.5 Mb(这是接近) 从里面删除。git文件夹会得到同样的2.6 Mb
仍然不太好,因为大小~4.29 Mb也不是7.5或2.6 Mb
因此,size参数显示了一些东西,它接近于最近的提交,但它不是回购的强正确大小。
上面已经展示了它如何使用axios repo,但是使用不同的repo进行的测试显示了相同的结果。
这是我的经验。
你可以使用Github API
下面是Python示例:
import requests
if __name__ == '__main__':
base_api_url = 'https://api.github.com/repos'
git_repository_url = 'https://github.com/garysieling/wikipedia-categorization.git'
github_username, repository_name = git_repository_url[:-4].split('/')[-2:] # garysieling and wikipedia-categorization
res = requests.get(f'{base_api_url}/{github_username}/{repository_name}')
repository_size = res.json().get('size')
print(repository_size)
使用curl (sudo apt-get curl)和jsonpretty (sudo gem install jsonpretty json)来做到这一点:
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
用你的GitHub用户名替换YOURGITHUBUSERNAME。
将OWNER替换为存储库所有者的Git用户名。 将REPOSITORY替换为存储库名称。
或者作为一个漂亮的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
像这样使用它:
gitrepo-info larowlan pisi reel
这将给我关于GitHub上的pisi/reel存储库的信息。
如果您使用谷歌Chrome浏览器,您可以安装GitHub存储库大小扩展。
回购地址:https://github.com/harshjv/github-repo-size