解决Github不能下载,下载速度慢的小妙招
错误描述
今天在github上使用 git clone 某个项目代码的时, git clone https://github.com/XXXX/xxx-blog.git 下载速度很慢,然后下载一段时间后,总是提示下面的错误信息:
remote: Enumerating objects: 33, done. remote: Counting objects: 100% (33/33), done. remote: Compressing objects: 100% (8/8), done. error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054 fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
错误原因
由于Http协议错误,当 pull 或者 clone 的时候,或者是 github 某个CDN被屏蔽所致。
解决办法1
协议错误
先执行下列命令
git config --global http.postBuffer 5242880000
再执行git pull
或者 git clone
命令
解决办法2
修改域名
- 访问 http://github.global.ssl.fast…获取cdn域名以及IP地址
- 访问 http://github.com.ipaddress.c… 获取cdn域名以及IP地址
- 或者直接访问https://www.ipaddress.com/网址查询下面所需的地址对应的IP
修改hosts文件
将上述获取的IP地址添加到hosts文件中
Mac在/etc/hosts
中;
windows在C:\Windows\System32\drivers\etc\hosts
中;
# fix git clone github project failed 140.82.113.3 github.com 199.232.5.194 github.global.ssl.fastly.net 192.30.253.120 codeload.github.com
刷新DNS缓存
Mac刷新DNS缓存
sudo killall -HUP mDNSResponder sudo dscacheutil -flushcache
Windows更新DNS缓存
cmd命令窗口执行:
ipconfig /flushdns
使增加的映射生效。
解决办法3
使用chrome浏览器,安装一个插件【Github 加速器】
下载地址: https://chrome.zzzmh.cn/info?token=mfnkflidjnladnkldfonnaicljppahpg
安装后见crx文件拖到谷歌的扩展功能里面,然后安装成功。打开gihub会看到如下界面,多了几个加速地址.
解决办法4
利用socks5代理,配置好后明显加速。用下面两条命令配置好后,保持代理客户端开启就行了。
设置代理
# 可以参考以下配置,这里的127.0.0.1代表的就是你本机的IP地址,因为服务就在你本机上运行 # 10809是代理的客户端本地端口,默认是1080 git config --global https.proxy http://127.0.0.1:10800 git config --global https.proxy http://127.0.0.1:10800 git config --global http.proxy 'socks5://127.0.0.1:10800' git config --global https.proxy 'socks5://127.0.0.1:10800'
上述方法挂了全局代理,但是如果要克隆码云、coding等国内仓库,速度就会很慢。更好的方法是只对github进行代理,不会影响国内仓库:
git config --global http.https://github.com.proxy socks5://127.0.0.1:10800 git config --global https.https://github.com.proxy socks5://127.0.0.1:10800
代理后git clone速度真的快了很多~我这边能到1MB/s以上
查看代理
git config --global -l
取消代理
git config --global --unset http.proxy git config --global --unset http.proxy
其他异常问题
1. 解决 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
将下面的IP地址添加到hosts文件中
199.232.68.133 raw.githubusercontent.com 199.232.68.133 user-images.githubusercontent.com 199.232.68.133 avatars2.githubusercontent.com 199.232.68.133 avatars1.githubusercontent.com
2. 解决curl: (56) OpenSSL SSL_read: Connection was reset, errno 10054
一、问题:
error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054
如图:
原因:远程仓库的文件过大,需要设置本地仓库大小
二、解决步骤:
1、首先输入如下命令:
git config http.sslVerify "false"
若出现下列错误:
git config http.sslVerify "false" fatal: not in a git directory
再继续执行 git config --globle http.sslVerify "false"
问题解决
2、文件大小的上限设置:
git config --global http.postBuffer 524288000
fatal: not in a git directory** 再继续执行 **
git config --globle http.sslVerify “false”`** 问题解决
2、文件大小的上限设置:
git config --global http.postBuffer 524288000
3、如果还是git代码还是下载失败,则需要继续修改git缓存的大小