`
yuting_lv
  • 浏览: 111359 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

「git Clone failed」RPC failed;errno 54

    博客分类:
  • git
阅读更多

从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成功 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics