在你决定克隆它之前,有没有办法看看GitHub上的Git存储库有多大?

这似乎是一个非常明显/基本的统计数据,但我根本找不到如何在GitHub上看到它。


当前回答

你可以使用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)

其他回答

你需要遵循GitHub API。有关存储库的所有详细信息,请参阅这里的文档。 它需要你做出一个GET请求,如:

获得/回购:所有者/:库

你需要替换两个东西:

:owner—存储库所有者的用户名 :repository—存储库名称

例如,我的用户名maheshmnj,我拥有一个存储库,flutter-ui-nice,所以我的GET URL将是:

https://api.github.com/repos/maheshmnj/flutter-ui-nice

在发出GET请求时,您将收到一些JSON数据,可能在第78行中您应该看到一个名为size的键,它将返回存储库的大小。

提示:当使用JSON时,我建议您添加一个插件来格式化JSON数据,使读取JSON变得容易。安装插件。

有一种方法可以通过GitHub API访问这些信息。

语法:GET /repos/:user/:repo 例如:https://api.github.com/repos/git/git

在检索关于存储库的信息时,一个名为size的属性的值是整个存储库的大小(包括它的所有历史),单位是千字节。

例如,Git存储库的重量约为124 MB。返回的JSON有效负载的size属性的值为124283。

更新

大小实际上是根据服务器端裸存储库的磁盘使用情况以千字节表示的。然而,为了避免在拥有大型网络的存储库上浪费太多空间,GitHub依赖于Git Alternates。在此配置中,根据裸存储库计算磁盘使用情况并不考虑共享对象存储,因此通过API调用返回“不完整”的值。

此信息由GitHub支持提供。

如果您试图找出您自己的存储库的大小。

你所要做的就是去GitHub设置存储库,你可以在浏览器中看到所有的大小,不需要额外的工作。

https://github.com/settings/repositories

使用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存储库的信息。

我创建了一个bookmarklet脚本来使用NVRM的答案的方法来做到这一点。

要使用它,请创建一个新书签,为其命名,并将此脚本粘贴到URL字段中。在浏览一个回购时点击这个书签会弹出一个提醒,提醒的大小有兆字节和千字节。

javascript:(()=>{let url=new URL(document.location.href);if(url.origin!="https://github.com"){return}if(url.pathname=="/"){return}let p=url.pathname.slice(1,url.pathname.length);let parts=p.split('/');if(parts.length<2){return}let x=[parts[0],parts[1]].join('/');fetch(`https://api.github.com/repos/${x}`).then(r=>r.json()).then((b)=>alert(`${(b['size']/1000).toFixed(2)}mb (${b['size']}kb)`))})()