github代码clone加速

本文最后更新于:2021年6月15日 晚上

这阵子想看看开源项目 MyBatis 的源码,结果使用 git 的 clone 命令怎么也 clone 不下来,我以为是网速慢,上 Google 一搜,原来 Github 的域名被 DNS 污染了,我说呢怎么访问 Github 一直都很慢,知道了问题原因就解决掉这个恶心的问题

再再更新

安装油猴以及加速脚本

油猴安装: https://www.tampermonkey.net/

油猴脚本:https://greasyfork.org/scripts/398278-github-%E9%95%9C%E5%83%8F%E8%AE%BF%E9%97%AE-%E5%8A%A0%E9%80%9F%E4%B8%8B%E8%BD%BD

直接访问GitHub查看效果。如下图

与上一次同理,这次也使用的是反向代理达到加速的目的,只不过这次使用的域名非笔者提供的。使用方法:https://github.com.cnpmjs.org/用户名/仓库名
如:https://github.com.cnpmjs.org/apache/skywalking,则clone地址为:http://github-mirror.bugkiller.org/apache/skywalking.git

再次更新

发现另外一种方式可以实现加速的方式,即通过一台服务器(可以是非国外服务器)通过nginx反向代理GitHub,然后直接访问代理后的地址即可。这种方式适合下载代码的zip包或者仓库里的releases文件,比如https://xxxx.domain.com/Mosiki/github/archive/master.zip

具体反向代理的配置读者可以自行查找教程。

这里给出免费的服务,但是每日会有上限限制,可能会出现无法使用的情况,读者最好自己搭建代理服务。

1
https://git.vcmq.workers.dev/

可以参考 此文章 自行搭建代理服务

更新一下

2019年09月03日更新:

最近发现用 hosts 方式不太好使了,如果改 hosts 的方式也不起作用的话,可以使用这个绝招了。

步骤一:fork 你想要 clone 的库

步骤二:登录码云,登录成功后,点击网页右上角加号,选择 从 GitHub 导入仓库

这个过程码云会让你去 GitHub 授权拉取你的仓库,选择同意就行了。

步骤三:找到你在 GitHub 中 fork 的仓库选择导入,等待一会儿就行了,如果仓库较大,可能导入会花一些时间。

步骤四:使用码云的地址进行 clone 即可,国内的速度还是非常快的!

备注:此方法只适用于临时下载仓库,如果要是提 PR 什么的,还是使用改 hosts 方法或者走代理的方式吧。


2019年06月16日更新一下:

看评论有人说不好使,我在 mac 上本地测试了一下(未开启全局代理),红框之上是未指定 hosts 的结果,速度很慢,平均不到 50k/s 的速度,红框内是切换到最新 host 之后的结果,速度一直在增加,达到 3.25MB/s,效果显而易见。

Tips: 如果切换到最新 hosts 后还是很慢,可以重新开一个终端尝试,或者断开再重连一下网络,可能是 hosts 还未生效。(switch hosts 在 win 下需要使用管理员身份打开,mac 下需要输入开机密码获得权限)

加速访问

在网上搜索一圈,好多文章中提速的方法就是修改 git 的代理配置,前提是有 SS 之类的{代}{理}工具,然而我开了全局{代}{理},设置了 git 的代理配置,clone 的速度还是很慢,只能到 30kb/s,如果库大点,下个几天几夜都可能😅

设置代理不好使,就继续搜索解决方法,在 github 上找到一个 issues,其中提供了 github 的 host列表。

GitHub中国加速访问

随着 issue 找到了一个生成 hosts 的 repo,但是这个 repo 的 hosts 并不是每日更新的,于是自己 fork 了一份,写了个简单 crontab,每日执行生成更新 hosts 文件。

仓库地址:**https://github.com/Mosiki/github**

食用方法

最麻烦的方式就是去手动修改 host 文件,最简单的方式就是下载 Switch Host 软件进行 host 修改,跨平台,因为 hosts 文件每日都会自动更新,所以需要本地的 hosts 也能自动更新, 好在 SwitchHosts 提供了远程 hosts 的功能。

  1. 复制如下 hosts 地址(测试发现GitHub的网址有可能访问不了,因而更换成了码云的镜像仓库地址)

    1
    https://gitee.com/Mosiki/github/raw/master/github_hosts.txt
  2. 新增远程 hosts
    笔者在 mac 下操作,win 是同理。

  3. 设置自动更新
    选择 24 小时即可,第一次添加的时候需要手动点击刷新按钮,刷新获取一下远程的 hosts

    更新完成之后点击确定保存即可。

  4. 打开 hosts 开关

    如图设置完,把开关打开就 Ok 了。

测试Clone速度

由 30kb/s 变成 4M/s 了 😂

修改后,在 GitHub 的 release 中下载东西也变快了。