背景
对于我们程序员来说,经常上github找项目、找资料是必不可少的,但是一些原因,我们访问的时候速度特别的慢,需要有个代理,才能正常的访问。
今天碰到个问题,使用idea工具 clone项目,速度特别的慢,经常失败,配置idea代理:
配置好以后,check connection github 提示成功
使用idea 去clone项目 还是失败,提示连不上,代理都配置了,为什么还连接不上呢?
git还是通过默认的方式去访问github的服务,所以需要让git访问本地的代理服务
解决方案
git 设置代理
- 在终端中使用以下命令行为git设置代理:
全局代理,代理所有仓库
git config --global http.proxy http://127.0.0.1:1777
git config --global https.proxy http://127.0.0.1:1777
设置完成后,不管使用idea工具,还是使用命令 git clone 速度杠杠的
这是全局代理了所有的仓库,会导致有的仓库速度特别慢,我们单独指定代理的仓库
代理指定的仓库
git config --global http.https://github.com.proxy http://127.0.0.1:1777
这种代理 ,代理只会对 https://github.com 这个仓库有效,不会影响其他的仓库
设置完成后,不管使用idea工具,还是使用命令 git clone 速度杠杠的
- git 取消代理
如果不适用这个代理,使用下面的命令取消
git config --global --unset http.proxy
git config --global --unset https.proxy
添加 --depth 参数
如果一个项目很大,时间久远,分支、commit 特别多,clone的时候速度特别慢,有时候还容易失败,那怎么办呢?
加上参数–depth,速度杠杠的,提升几十倍太轻松了,命令如下:
https://github.com/pinpoint-apm/pinpoint.git --depth=1
加上 --depth 会只下载一个 commit,所以内容少了很多,速度也就上去了。
而且下载下来的内容是可以继续提交新的 commit、创建新的分支的。不影响后续开发,只是不能切换到历史 commit 和历史分支。
这个不单单针对github,只要git管理的项目都使用,是git clone 自带的参数,使用下面命令查看:
git clone -h
结果如下: