欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

「git Clone failed」RPC failed;errno 54

程序员文章站 2022-03-08 12:04:04
...

从github上使用https url clone一个比较大的项目,下载大小600M+ 

遇到错误:

Clone failed
RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
the remote end hung up unexpectedly early EOF index-pack failed

 记录下解决过程:

参照 https://blog.csdn.net/DJY1992/article/details/50604937

设置 comporession=-1,失败

参照 https://vnzmi.com/2017/01/08/git-early-eof-index-pack-failed/

设置增大内存缓存,失败

参照 https://github.com/lanlin/notes/issues/41

git 在 pull 或者 push 一个大项目时,可能会碰到出现如题所示的错误。
又或许是因为修改了太多的历史提交,一次性需要提交大量信息也可能会导致该情况。

解决办法(分两种)
网络上往往都会说这是由于大文件造成的提交或者拉取失败。
但是,经过本人测试。如果 errno 56,那么应该是有大文件或者提交缓存方面的问题。
而 errno 54 则不是这个问题。对于 56 错误的解决方式与网络上大部分文章的一致。
都是增大缓存配置,比如下面就是配置提交缓存为 500M。
git config http.postBuffer 524288000
git config https.postBuffer 524288000
对于 errno 54 这个错误,经尝试 http 或者 https 协议都无法正常提交。
必须改为 ssh 方式来提交代码。也就是必须使用公私钥的方式进行账号验证,并提交代码。
具体生成公私钥的方法,参见 github 帮助文档
https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
同时找到 git config 当中的项目 url 配置项,改为 ssh 协议类型的项目地址。
例如:url = git@github.com:xxx/xxx.git

检测你的 git 版本是不是最新的。

你本身是否有这个项目的访问权限。


如果你开启了账户的双重验证、或者你准备 clone 的项目是一个开启了单点登录(SSO)的企业项目,那你必须要生成一个个人的 access token,而不能直接用密码访问。

如果你使用 ssh 来访问,你必须先生成 ssh key 公私钥匙对。

如你的目标项目的企业要求单点登录的,这个时候只能用 https 来访问,不能用 ssh.

 更新mac上安装的git版本到最新

参照: https://help.github.com/cn/github/using-git/which-remote-url-should-i-use

https://help.github.com/cn/github/authenticating-to-github/connecting-to-github-with-ssh

设置 “在 HTTPS 端口使用 SSH”

使用SSH方式clone成功 

 

相关标签: git github