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

更新一下

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
  1. 新增远程 hosts
    笔者在 mac 下操作,win 是同理。

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

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

  3. 打开 hosts 开关

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

测试Clone速度

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

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