为什么我会收到错误:RPC失败; result = 52,HTTP code = 0致命:当推送到github时,远程端意外挂断?

时间:2013-08-26 04:49:30

标签: git github push git-remote

我在github上创建了一个新的存储库,并希望推送一些文件。所以我像普通的那样初始化存储库并执行git add .以添加当前目录(这是我的java项目文件夹,里面有binsrc文件夹。然后我使用以下方法添加了远程目录:

git remote add https://github.com/username/project.git

然后我做了第一次提交git commit -m "First Commit"

然后我输入git push -u origin master并收到此错误:

Counting objects: 63, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (60/60), done.
Writing objects: 100% (62/62), 16.98 KiB, done.
Total 62 (delta 15), reused 0 (delta 0)
error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

但是,如果我只添加一个文件并尝试只提交一个文件,那么它可以工作。

发生了什么事?为什么我不能提交我的整个Java项目?它是一个非常小的项目,只有214k。请帮忙!谢谢!

9 个答案:

答案 0 :(得分:20)

Bitbucket有相同的错误消息。通常它与降低的服务器性能有关。在开始做其他事情之前,请检查:

答案 1 :(得分:16)

如果您的HTTP帖子缓冲区对于您想要推送的更改而言太小,也会发生此错误。

在这种情况下,解决方案是增加它,例如使用

git config http.postBuffer 524288000

答案 2 :(得分:11)

现在它正在运作!我甚至没有改变一件事。

这种错误'result = 52'是github本身的错误。 Github.com正在下降,当我尝试上传时,我收到了错误。现在该网站已备份,我可以正常提交。

答案 3 :(得分:11)

尝试通过http从Bitbucket存储库克隆/获取时遇到了这个问题。结果是存储库太大(+ 1gb)并且Bitbucket回复了这个错误:

error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly

我切换到SSH协议,现在工作正常。之后,如果需要,您可以将遥控器设置回http版本,它将继续工作。

答案 4 :(得分:6)

如果您的互联网连接也有错误,可能会发生这种情况,是的,我现在正在经历一次...... :)。

答案 5 :(得分:3)

这也可能是由于以下

原因

  

大文件的预设(在我们的例子中为45MB)

为什么

  

大文件导致HTTPS超时

解决方案

  

使用SSH或删除大文件

答案 6 :(得分:2)

我试过了:

$ git config --global --add core.compression -1
$ git clone https://....

它有效。

(找到here

答案 7 :(得分:0)

对于 Bitbucket ,我通过切换到ssh而不是http来解决此问题。

  1. SECURITY > SSH keys中配置Avatar > Bitbucket settings
  2. 将远程网址从https://...更改为git@...
    • 修改.git/config文件启动git remote set-url origin git@...
  3. git push -u origin --all(注意:git add .之后按git commit -m "intial commit"
  4. 基于wintersolideranswer

答案 8 :(得分:0)

花了我几个小时。我使用https遇到了同样的问题。另外:我无法通过ssh连接到bitbucket。

我正在使用Linux Mint 17.x,这个解决方案就像ssh的魅力一样:

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085(来自bs - bentzy-sagiv的回答)

  

这解决了这个问题:

     

在/etc/sysctl.conf中附加以下内容:   net.ipv4.tcp_mtu_probing = 1

     

重启后你应该看到/ proc / sys / net / ipv4 / tcp_mtu_probing了   值“1”

     

临时解决方案是:echo 1>的/ proc / SYS /网/的IPv4 / tcp_mtu_probing   警告:这将在启动时重置。

     

如果仍然无效,您也可以尝试使用值“2”。

     

(见解释   于:https://thesimplecomputer.info/pages/adventures-in-linux-tcp-tuning-page2