当前位置: 首页>>技术教程>>正文


git错误:RPC失败; curl 56 GnuTLS

,

问题描述

我使用Ubuntu 16.04。当我想git push origin master时,我得到:错误:RPC失败; curl 56 GnuTLS接收错误(-12):收到TLS致命警报。致命:远程意外挂断致命:远程意外挂断一切up-to-date

最佳方案

要解决此问题:

用openssl而不是gnutls重建git解决了我的问题。

我关注了these instructions

次佳方案

@harlequin接受的答案可能有效,但是我花了2个小时,无法从源代码构建git包。

但是,请检查以下链接,因为这对我有用。

The remote end hung up unexpectedly while git cloning

只需更新http发布缓冲区值

git config --global http.postBuffer 1048576000

第三种方案

看完您的帖子后,我只需通过以下方法解决

apt install gnutls-bin

第四种方案

如果您需要克隆或拉取,我有一个解决方法,问题出在存储库历史记录的大小上。如果您不希望以后再推送,它也可能会有所帮助。

只需使用--depth=[number of last commits]检索最后的提交即可。

您可以在克隆时执行此操作,或者,如果在添加了远程功能的本地存储库中进行操作,则可以在提取时执行此操作。例如,仅检索(每个分支的)最后一次提交:

git clone repo --depth=1
# or
git pull --depth=1

更新:如果遥控器距离您太多了,那么当您尝试进行最后的更改时,问题可能稍后会出现,但是有太多问题,并且使用curl 56关闭连接。您可能必须使用git pull --depth=[number of commits ahead on remote],这很繁琐如果您正在使用非常活跃的存储库。

第五种方案

您可以设置一些选项来解决问题

在全局级别上都可以:(如果您使用clone,则需要,不要忘记在之后重置)

$ git config --global http.sslVerify false
$ git config --global http.postBuffer 1048576000

或在本地存储库上

$ git config http.sslVerify false
$ git config http.postBuffer 1048576000

第六种方案

我也在使用基于Ubuntu的系统(Mint mate 18),从github克隆大型仓库时遇到了类似的问题。

对我有用的简单解决方案是使用ssh协议而不是http(s)协议。

例如

git clone git@github.com:xxx/yyy.git

第七种方案

我也遇到了同样的问题,重新启动系统解决了它:)

第八种方案

尝试升级openssl模块

我这样做解决了

sudo apt install openssl

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10606.html,未经允许,请勿转载。