解决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

修改域名

修改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 加速器】

image-20220413154253095
在这里插入图片描述

下载地址: 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

如图:

img

原因:远程仓库的文件过大,需要设置本地仓库大小

二、解决步骤:

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缓存的大小

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐