「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。
前言
GitHub,目前世界上最大的代码存放网站和开源社区。很大开发者或者团队,都会把GitHub作为自己的代码发布平台。
一些项目,也将GitHub作为项目版本发布平台,或者是更新源的远程地址。比如:上篇文章的oh-my-zsh,就是使用git作为远程地址,用于检测和更新。
但是,国内访问GitHub,经常出现无法加载或加载过慢问题……
为什么GitHub访问慢
首先,GitHub访问慢,主要原因之一,就是GitHub过于庞大,每分钟都有无数开发者在GitHub上上传项目代码、发布项目代码,而因为一些不可描述原因,可能需要更改电脑的DNS,改善网络环境。
维持,给大家总结了三种方法,加快GitHub项目的访问和克隆。
方法比较
本文提供三种方法:
Opt1:文件CDN下载:适用于明确GitHub上具体文件下载地址的情况。比如:某个release版本的文件、某个分支的maste.zip等。Opt2:GitHub镜像源:适用于需要使用git进行项目克隆情况。Opt3:托管平台中转:适用于GitHub镜像站没有同步镜像,需要自己搭建镜像的情况。
一般情况,推荐使用
Opt1对文件进行下载,方法最简单。如果需要git clone则优先选择Opt2。
Opt1:文件CDN下载
文件的CDN下载,提供两个方法:
jsdelivr公共CDN:加速GitHub上的文件(不支持git)- 相当于前者的Plus版本:使用cloudflare worker自建CDN加速。
注意:
jsdelivr缓存GitHub文件,单个文件上限50MB。
jsdelivr cdn
这个很出名,相信大家都知道。
- jsdelivr官网:www.jsdelivr.com
- jsdelivr GitHub说明:github.com/jsdelivr/js…
其原理很简单,官网也有提供:
我们使用也很简单:
// 加载任何Github发布、提交或分支
https://cdn.jsdelivr.net/gh/user/repo@version/file
举个例子: 我们下载我GitHub里这个文件:
https://github.com/Mintimate/AutoInstallAria2/blob/main/aria2-1.35.0-linux-gnu-32bit-build1.tar.bz2
那么,使用jsdelivr进行加速,文件下载地址就是:
https://cdn.jsdelivr.net/gh/Mintimate/AutoInstallAria2@main/aria2-1.35.0-linux-gnu-32bit-build1.tar.bz2
如果还是不会下载地址的格式,jsdelivr官方也提供了在线转换器:www.jsdelivr.com/github
cloudflare worker
使用cloudflare worker自建加速平台。底层原理是:
使用cloudflare worker对URL进行解析,之后对其解析为jsdelivr链接,或者解析为https://github.com.cnpmjs.org。
搭建方法:
- 进入worker首页:workers.cloudflare.com
- 注册,登陆,
Start building,取一个子域名,Create a Worker。 - 复制 index.js 到左侧代码框,
Save and deploy。如果正常,右侧应显示首页。 index.js默认配置下clone走github.com.cnpmjs.org,项目文件会走jsDeliver,如需走worker,修改Config变量即可ASSET_URL是静态资源的url(实际上就是现在显示出来的那个输入框单页面)PREFIX是前缀,默认(根路径情况为"/"),如果自定义路由为example.com/gh/*,请将PREFIX改为 '/gh/',注意,少一个杠都会错!
Opt2:GitHub镜像源
GitHub其实有很大镜像源,方便在无法使用/连接GitHub时进行克隆
已知的 GitHub 镜像:
https://github.com.cnpmjs.org:可能是阿里cnpmjs旗下项目,暂无官方文档。https://github.wuyanzheshui.workers.dev:这个……也不清楚隶属那个项目,是个人还是团队。只知道服务器是Cloudflare服务器,速度看运气。https://github.bajins.com:这个是个人的项目了,作者应该是GitHub用户:github.com/bajinshttps://doc.fastgit.org:目前还在测试的项目,但是挺好用的。https://gitclone.com:也是一个GitHub镜像平台,提供会员和非会员加速,不过正常非会员版本就够了。
接下来,就举例使用。还是拿我的项目:https://github.com/Mintimate/AutoInstallAria2
cnpmjs加速【推荐】
使用cnpmjs加速很简单。原本我们是:
git clone https://github.com/Mintimate/AutoInstallAria2
使用cnpmjs加速,只需要转换成:
git clone https://github.com.cnpmjs.org/Mintimate/AutoInstallAria2
fastgit
fastgit根据其官网描述,也很简单:
原本我们是:
git clone https://github.com/Mintimate/AutoInstallAria2
使用cnpmjs加速,只需要转换成:
git clone https://hub.fastgit.org/Mintimate/AutoInstallAria2
Opt3:托管平台中转
最后,如果上诉方法都不能满足你的需求;或者无法使用,你可以使用其他托管平台,先Git clone,再Git clone到本地。
很多人都推荐过Gitee。这里我就不随波逐流了,使用Coding进行中转。
首先,我们打开Coding,并登录。之后进入项目管理:
新建一个项目(这里我就不新建了,直接打开AutoInstallAria2项目:
之后,选择代码仓库-导入外部仓库
粘贴你需要克隆的GitHub仓库地址,并选择是否私有:
创建好后,即可二次克隆到本地:
这样做的好处:
- 项目会自动同步GitHub仓库
坏处的话……可能是太麻烦了◡ ヽ(`Д´)ノ ┻━┻
END
到此,就是GitHub快速下载的三种方法了哦。
其实,
Opt1里的cloudflare worker也可以用来Git;大家也可以去试试。