提问者:小点点

git错误:gnutls_handshake()在推送时失败


我已经使用git有一段时间了,没有遇到任何问题,然后突然它在使用<code>git-push</code>时开始抛出这个错误:

错误:gnutls_handshake()失败:收到长度意外的tls数据包。访问时...致命错误:HTTP请求失败

它工作得很好,然后突然停止了。

问题出在哪里?

谢谢


共3个答案

匿名用户

gnutls包似乎有问题。作为一种解决方法,您可以尝试使用openssl编译git。您可以在此处找到有关如何完成此操作的更多信息。

匿名用户

askubuntu上的链接讨论引用了git的版本号,该版本号可能与您自己的版本号不匹配。代替这两行:

sudo dpkg-source -x git_1.7.9.5-1.dsc
cd git_1.7.9.5 8.

您需要说明您正在使用的git版本。就我而言,是1.8.xxxxx。

sudo dpkg-source -x git_<git-version-number>.dsc
cd git_<git-version-number>

解决此问题的一种简单方法是复制命令的第一部分,然后按 Tab 键自动完成。如果您之前重新编译过,这可能无法完美运行。

匿名用户

在我的案例中,同样的错误是由完全不同的事情引起的。

Debian从Wheezy升级到Jessie,从而apache从2.2.22升级到2.4.10。git正在尝试推送到https://www.example.com,它停止工作,出现< code >错误:gnutls_handshake()失败:收到长度意外的tls数据包

结果,www.example.com同时解析了IPv4和IPv6地址,而apache config有< code >

(如果它能帮助其他人解决同样的问题,也是如此...只是在用openssl乏味地重新编译git之后才发现它根本没有改变任何东西)