Git "efrror: RPC failed; result=55, HTTP code = 0" on push
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17437642/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Git "efrror: RPC failed; result=55, HTTP code = 0" on push
提问by gnetscher
I've spent all day on this one and could really use some help. When I try to push a relatively large commit,
我花了一整天的时间在这个上,真的可以使用一些帮助。当我尝试推送一个相对较大的提交时,
Writing objects: 100% (21/21), 908.07 KiB | 0 bytes/s, done.
Total 21 (delta 17), reused 0 (delta 0)
git takes a very long time to respond and then gives
git 需要很长时间才能响应然后给出
"efrror: RPC failed; result=55, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date"
I have searched this error code, and the most likely solution seems to be extending the buffer size
我搜索了这个错误代码,最可能的解决方案似乎是扩展缓冲区大小
git config http.postBuffer 524288000
I have tried this solution with no success. After VonC's suggestion, I tried switching from http to ssh. From ssh, I get a long hang up at the same point. Eventually, the following error message appears
我试过这个解决方案但没有成功。在 VonC 的建议下,我尝试从 http 切换到 ssh。在 ssh 中,我在同一时间挂断了很长时间。最终,出现以下错误信息
Read from remote host github.com: Connection reset by peer
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Could this be a router issue? I have tried pushing from a different computer on a different network and am able to do so successfully.
这会不会是路由器的问题?我曾尝试从不同网络上的不同计算机推送,并且能够成功执行此操作。
I am away from my Linux machine on a Windows host and using the terrible poshGit Windows PowerShell interface.
我离开了 Windows 主机上的 Linux 机器并使用了糟糕的 poshGit Windows PowerShell 界面。
Any ideas??
有任何想法吗??
采纳答案by VonC
You can follow the debug advices from the BitBucket article:
您可以遵循BitBucket 文章中的调试建议:
Specifically, the '
result=55
' portion.
This is the error code coming from libcurl, the underlying library used in http communications with Git. From the libcurl documentation, a result code of 55 means:
具体来说,'
result=55
' 部分。
这是来自libcurl的错误代码,它是用于与 Git 进行 http 通信的底层库。从 libcurl 文档中,结果代码 55 表示:
CURLE_SEND_ERROR (55)
Failed sending network data.
Cause
原因
This can be caused by a variety of network related issues or even the Bitbucket service itself. It essentially means that the connection was dropped unexpectedly. Things to check would be to attempt the push from a machine on a 'clean' network outside of any corporate firewalls or proxies. Check all proxy servers to ensure they are properly moving SSL data and are fully permitted to complete.
To help troubleshoot this issue, try running the push with the command
这可能是由各种网络相关问题甚至是 Bitbucket 服务本身引起的。这实质上意味着连接意外断开。要检查的事情是尝试从任何公司防火墙或代理之外的“干净”网络上的机器进行推送。检查所有代理服务器以确保它们正确移动 SSL 数据并完全允许完成。
要帮助解决此问题,请尝试使用以下命令运行推送
GIT_CURL_VERBOSE=1 git push
Workaround
解决方法
If after checking all connections and proxy configurations the connection still fails consistently, please report the information above to support. Then switch to SSH. We have a guide to getting it setup for Git at Set up SSH for Git. If you should run into any configuration issues while setting up SSH, please refer to our SSH Troubleshooting guide.
如果在检查所有连接和代理配置后,仍然连接失败,请报告上述信息以支持。然后切换到 SSH。我们在为Git 设置 SSH 中提供了为 Git 设置它的指南。如果您在设置 SSH 时遇到任何配置问题,请参阅我们的SSH 故障排除指南。
回答by jonasbn
I experienced the issue due to a misconfiguration, where I pointed to a remote prefixed with http:// instead of https:// the answer hinted on SSL and this helped me to a solution for my issue.
由于配置错误,我遇到了这个问题,我指向一个带有 http:// 而不是 https:// 前缀的远程 SSL 上暗示的答案,这帮助我找到了解决我的问题的方法。
So my remote configuration should be written:
所以我的远程配置应该写成:
$ git remote add origin https://github.com/jonasbn/perl-workflow.git
over:
超过:
$ git remote add origin http://github.com/jonasbn/perl-workflow.git
Take care,
小心,
jonasbn
乔纳斯本