如何提高GitHub日常使用、下载速度?

程序猿大多数是离不开GitHub这个巨大的开源宝库的,而更多的时候我们需要使用 git clone 一个项目到本地的时候会发现这个速度是真的无话可说

小项目等几分钟无所谓,如果clone的项目很大或者项目文件数目一多, git clone 大概率会失败,这个时候我们应该如何解决呢?下面来说几种方法

指定 clone 深度

我们在clone某个项目的时候,通常都是直接使用git clone来操作,比如拉取swoole-src的代码

git clone git@github.com:swoole/swoole-src.git

我们只是需要拉下来编译一下master的代码,而不需要所有的内容,那我们就可以加上--depth=1参数,用于指定克隆深度,为1表示只克隆最近一次commit

这个时候就会发现clone的代码体积比直接clone的体积是减小的

设置 SSH 代理

使用浏览器访问的时候我们可以使用代理全局模式,但是我们 push 、 pull 和 clone 等通过 SSH 来实现的操作也不会有任何变化,因为 SSH 还是直连的

但这些才是程序猿的日常操作,通过 HTTPS 协议去进行操作肯定是没有问题的,可是每次操作都要输入账号密码也非常的繁琐

如何让 SSH 也通过代理来访问呢?很简单,只需要配置 ~/.ssh/config 文件,增加以下的内容即可:

Host github.com
   HostName github.com
   User git
   ProxyCommand nc -v -x 127.0.0.1:1086 %h %p

注意配置文件内的 127.0.0.1:1086 需要与本地 SS 客户端的所暴露的 本地 Socks5 监听地址 本地 Socks5 监听端口 一致

使用国内镜像 Gitee

这是个曲线救国的方法,码云是面向国内服务,所以速度可想而知,Gitee 码云有提供一个码云极速下载的服务,为了提升国内下载速度

一般国内的开源项目基本上都会有gitee仓库,比如swoole-src、hyperf这些都有官方的仓库

而也有一些大型项目码云在这个极速下载服务中提供了仓库,截止本文发布时,码云已经提供了12.6K个仓库镜像,每日同步一次

如果这个项目长期使用的人很多,但是没有提供极速下载服务,你也可以请求同步,通过发送项目仓库信息到 git#oschina.cn (#换成@)申请即可

临时使用的话,有一个码云账户也是可以的,通过国内码云平台的转接,来完成GitHub上项目的下载加速,下面说一下具体操作

1. 点击右上角新建仓库的加号 +,选择从 GitHub/GitLab导入仓库菜单

2. 填写位于 GitHub 上,你想clone的仓库地址URL并点击导入。这一步交给码云来做速度是非常快的,稍等一会,码云就克隆出了一份和GitHub上一模一样的项目

3. 把clone地址换成码云上的项目地址,将项目clone到本地,这时候的clone速度就很快了

然后还没有完事,我们需要把地址修改回去,毕竟我们提pr什么的还是要去原地址操作的,执行命令:

git remote set-url origin git@github.com:UserName/Repository.git

这样就达到了我们提高GitHub日常使用、下载速度的需求

4 条评论

发表评论

*