普通办法
百度过很多种方法,例如,改hosts,换镜像等,虽然有点作用,但是提升的速度不是很明显,以下介绍的是的的确确非常有用的办法:
在git clone
的时候,例如git clone https://github.com/username/xxx.git
,改为git clone https://github.com.cnpmjs.org/username/xxx.git
,也即加上后缀.cnpmjs.org
,从国内镜像源里直接下载,速度瞬间提升。(实测有效)
对于含有子模块的项目,一般我们在克隆这种项目的时候都会采取git clone --recursive https://github.com/susername/xxx.git
的方式去克隆,这种方式很慢,即使加上.cnpmjs.org
后缀,因为就算加上.cnpmjs.org
后缀,也只是使得项目的主体克隆的很快,当克隆到该项目中的子模块时,由于子模块的url未加上.cnpmjs.org,导致了子模块克隆时依然是龟速。
可以先不要在git clone
的时候加上--recursive
,等主体部分下载完之后,该文件夹中有个隐藏文件称为:.gitmodules
,把子项目中的url地址同样加上.cnpmjs.org
后缀,然后利用git submodule sync
更新子项目对应的url,最后再git submodule update --init --recursive
,即可正常网速克隆完所有子项目。
一劳永逸的办法
在~/.gitconfig
文件中加入如下代码,保存并推出就可一劳永逸了。
//方便复制
[url "https://github.com.cnpmjs.org/"]
insteadOf = https://github.com/
使用此方法可能会遇到这种问题:
fatal: unable to access 'https://github.com.cnpmjs.org/XXX/XXX.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
报错,说证书校验有问题
解决方法是加一个环境变量:
Linux下:
export GIT_SSL_NO_VERIFY=1
windows下:
set GIT_SSL_NO_VERIFY 1
或者在git的配置文件中添加
git config --global http.sslVerify false