GitHub文件下载慢?无法克隆项目?三种方法加速你的GitHub克隆与下载

1,257 阅读4分钟

「这是我参与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

这个很出名,相信大家都知道。

其原理很简单,官网也有提供: 加速原理

我们使用也很简单:

// 加载任何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

项目地址:github.com/hunshcn/gh-…

搭建方法:

  1. 进入worker首页:workers.cloudflare.com
  2. 注册,登陆,Start building,取一个子域名,Create a Worker
  3. 复制 index.js 到左侧代码框,Save and deploy。如果正常,右侧应显示首页。
  4. index.js默认配置下clone走github.com.cnpmjs.org,项目文件会走jsDeliver,如需走worker,修改Config变量即可
  5. ASSET_URL是静态资源的url(实际上就是现在显示出来的那个输入框单页面)
  6. 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/bajins
  • https://doc.fastgit.org:目前还在测试的项目,但是挺好用的。
  • https://gitclone.com:也是一个GitHub镜像平台,提供会员和非会员加速,不过正常非会员版本就够了。

接下来,就举例使用。还是拿我的项目:https://github.com/Mintimate/AutoInstallAria2

Demo

cnpmjs加速【推荐】

使用cnpmjs加速很简单。原本我们是:

git clone https://github.com/Mintimate/AutoInstallAria2

使用cnpmjs加速,只需要转换成:

git clone https://github.com.cnpmjs.org/Mintimate/AutoInstallAria2

git成功

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;大家也可以去试试。