我使用的是Ubuntu 16.04。当我想要git push origin master我得到: 错误:RPC失败; curl 56 GnuTLS recv error(-12):收到TLS致命警报。 致命:远程端意外挂断 致命:远程端意外挂断 一切都是最新的
答案 0 :(得分:21)
@harlequin接受的答案可能有效,但我花了2个小时,无法从源代码构建git包。
但是,请查看以下链接,因为这对我有用。
The remote end hung up unexpectedly while git cloning
只需更新http post缓冲区值
git config --global http.postBuffer 1048576000
答案 1 :(得分:13)
答案 2 :(得分:7)
阅读您的帖子后,我可以通过
简单地解决它apt install gnutls-bin
答案 3 :(得分:4)
我也遇到了同样的情况并重新启动系统解决了它:)
答案 4 :(得分:3)
您可以设置一些选项来解决问题
在全球范围内:(如果您clone
需要,请不要忘记重置)
$ git config --global http.sslVerify false
$ git config --global http.postBuffer 1048576000
或在本地存储库
$ git config http.sslVerify false
$ git config http.postBuffer 1048576000
答案 5 :(得分:3)
我也使用基于Ubuntu
的系统( Mint mate 18 ),从github克隆大型repo时遇到了类似的问题。
对我来说简单的解决方案是使用 ssh 协议而不是 http(s)协议。
e.g
git clone git@github.com:xxx/yyy.git
答案 6 :(得分:3)
尝试升级openssl
个模块
我这样做解决了
sudo apt install openssl
答案 7 :(得分:2)
使用https
克隆CppCheck时,我在Ubuntu 18.04上遇到了这个问题。
一种解决方法是使用http
代替。
答案 8 :(得分:1)
答案 9 :(得分:1)
如果您需要克隆或提取并且问题出在存储库历史记录的大小上,我有一个解决方法。如果您不能保证以后再推送,它也可能会有所帮助。
仅使用<Tasks>
<#
DataTable DFT =ExternalDataAccess.GetDataTable(connString,FileConnection);
foreach(DataRow SourceFile in DFT.Rows)
{
#>
<ExecuteSQL Name="Truncate <#=SourceFile[8]#>" ConnectionName="OLEDB_Staging" BypassPrepare="false">
<DirectInput>Truncate Table <#=SourceFile[8]#>; </DirectInput>
</ExecuteSQL>
<Dataflow Name="<#=SourceFile[0]#>">
<PrecedenceConstraints>
<Inputs>
<Input OutputPathName="Truncate <#=SourceFile[8]#>.Output"/>
</Inputs>
</PrecedenceConstraints>
<Transformations>
<FlatFileSource ConnectionName="<#=SourceFile[0]#>" Name="<#=SourceFile[0]#>" RetainNulls="true" />
<DerivedColumns Name="Derived Column">
<Columns>
<Column Name="SUBMISSION_ID" DataType="Int32">0</Column>
</Columns>
</DerivedColumns>
<OleDbDestination ConnectionName="OLEDB_Staging" Name="OLEDB <#=SourceFile[0]#>" KeepNulls="true">
<ExternalTableOutput Table="<#=SourceFile[8]#>"></ExternalTableOutput>
</OleDbDestination>
</Transformations>
</Dataflow>
<Merge Name="Merge <#=SourceFile[7]#>" UnspecifiedColumnDefaultUsageType="CompareUpdateInsert" TargetConnectionName="OLEDB_Staging" TargetConstraintName="<#=SourceFile[7]#>.<#=SourceFile[9]#>">
<ExternalTableSource Table="<#=SourceFile[8]#>"/>
</Merge>
<#
}
#>
</Tasks>
</Package>
检索最后一次提交。
您可以在克隆时执行此操作,或者,如果在添加了远程功能的本地存储库中工作,则可以在提取时执行此操作。例如,仅检索(每个分支的)最后一次提交:
--depth=[number of last commits]
答案 10 :(得分:0)
对于 Linux: 很简单,您可以运行以下命令:
1) git config -l
2) git config --global http.postBuffer 524288000
Or set double value 1048576000
3) git config --global https.postBuffer
4) git config --global core.compression -1
5) service apache2 restart
然后再次检查git的配置
git 配置 -l
现在您可以运行克隆命令
git clone yourrepo
我希望这能解决问题。
答案 11 :(得分:0)
如果您正在运行 git 服务器服务,那么它不是 git 客户端问题...也许它也是 git 服务器问题! 这就是我的解决方案......
我们正在运行一个带有前端 nginx 反向代理的 gitbucket 服务器,用于 https。
在主要系统操作系统版本升级之后,我们开始在所有 git 客户端上收到此错误。 结果是 nginx 被替换了,新包的默认 nginx.conf 被安装了。 默认的 nginx 用户“www-data”已经不是以前的样子了。
在这背后的某个地方,一定存在权限问题,因为将 nginx 用户重置回其以前的值,然后重新启动 nginx 使一切重新开始。 .... 去搞清楚 ! (是的,在解决它的一个单一更改之前,我已经多次重新启动 nginx)
答案 12 :(得分:0)
当我们克隆以前在TFS上运行的旧项目时,我看到了类似的问题(尤其是深度问题)。启用长路径可以解决我们的问题,可能还有其他值得尝试的地方。
git config --system core.longpaths true
答案 13 :(得分:0)
我也有类似的错误:
错误:RPC失败; curl 56 GnuTLS接收错误(-9):收到长度意外的TLS数据包。
尝试从Github克隆存储库时。
尝试了此处发布的大多数解决方案后,这些解决方案都没有起作用,结果证明是我们家庭网络中的父母控制。关闭这些家长控制即可解决问题。
答案 14 :(得分:0)
在将Go Git Server托管在nginx后面并进行克隆时遇到了同样的问题:
remote: Enumerating objects: 103, done. remote: Counting objects: 100% (103/103), done. remote: Compressing objects: 100% (47/47), done. remote: Total 103 (delta 52), reused 99 (delta 51), pack-reused 0 Receiving objects: 100% (103/103), 11.56 KiB | 1.16 MiB/s, done. Resolving deltas: 100% (52/52), done. error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
在搜索基于RPC的问题之后,似乎要求使用HTTP2
因此我的nginx站点配置中的这一行:
listen 443 ssl; # managed by Certbot
已更改为此,以启用http2-这不是默认设置:
listen 443 ssl http2; # managed by Certbot
通常来说,TLS似乎更快乐(即在检查详细输出时,我还有其他关于curl和TLS的错误)
我已通过删除http2(这是重现该错误并恢复http2解决了该问题)的根本原因来验证这一点。
答案 15 :(得分:0)
我的Mac已连接到2.5GHZ网络,我必须使wifi达到5GHz。问题消失了。
答案 16 :(得分:0)
我通过断开VPN(我的操作系统是ubuntu-16.04)来解决了这个问题。
答案 17 :(得分:0)
我遇到了同样的问题,并使用SSH协议解决了该问题。
git clone git@github.com:micro/micro.git
答案 18 :(得分:0)
在尝试向上游推送新分支时出现此错误
git push --set-upstream origin xyz
我尝试了上面建议的几乎所有git config编辑,包括系统重新启动。没事。
所以我回到了master并进行了拉动,回到我的xyz分支,与master进行了合并并能够进行推送。
* currently on branch xyz
git checkout master
git pull
git checkout xyz
git merge master
git push --set-upstream origin xyz
master上的任何内容都与新分支“ xyx”中的任何更改都没有冲突。仅来自master的几个新提交被合并到我的“ xyz”分支中。正常情况下这应该不是问题。
答案 19 :(得分:0)
我尝试了以上所有方法,但均未成功。最终,我意识到我的WiFi连接较弱,因此下载速度较慢。我通过VIA以太网连接了设备,这立即解决了我的问题。
答案 20 :(得分:0)
WSL2用户通过Ubuntu 18 read this获得此支持。 基本上,您需要更新无线驱动程序。
答案 21 :(得分:0)
尝试为此禁用IPV6,然后再禁用。我认为这是您的问题。
答案 22 :(得分:0)
此外,如果您在命令行中使用任何代理,也可能发生此错误。
如果您之前导出过任何代理,请取消设置。
$ unset all_proxy && unset ALL_PROXY
答案 23 :(得分:0)
我刚刚设法通过使用SSH克隆来解决此问题。
为此,我必须将计算机的SSH密钥添加到我的帐户中。
答案 24 :(得分:0)
检查您的网络是否正常运行...由于互联网问题,也会出现此问题
答案 25 :(得分:0)
我所做的就是断开连接,然后从wifi重新连接我的电脑,它正常工作。有时答案可能非常简单。我的现在可以工作
答案 26 :(得分:-2)
只需执行命令
git init
在克隆之前为我解决了该问题。
答案 27 :(得分:-6)
重新安装git将解决问题。
sudo apt-get remove git
sudo apt-get update
sudo apt-get install git