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

问题描述 投票:20回答:9

我在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。请帮忙!谢谢!

git github push git-remote
9个回答
20
投票

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


16
投票

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

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

git config http.postBuffer 524288000

11
投票

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

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


11
投票

我试图通过http从Bitbucket存储库克隆/获取时遇到了这个问题。事实证明存储库太大(+ 1gb)并且Bitbucket回复了这个错误:

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

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


6
投票

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


3
投票

这也可能是由于以下原因

原因

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

为什么

大文件会导致HTTPS超时

使用SSH或删除大文件


2
投票

我试过这个:

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

它起作用了。

(找到here


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 / net / ipv4 / tcp_mtu_probing警告:这将在启动时重置。

如果仍然不起作用,您也可以尝试使用值“2”。

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


0
投票

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

  1. SECURITY > SSH keys中配置Avatar > Bitbucket settings
  2. https://...的远程URL更改为git@... 编辑.git/config文件或启动git remote set-url origin git@...
  3. git push -u origin --all(注意:git add .之前是git commit -m "intial commit"

基于wintersolideranswer

© www.soinside.com 2019 - 2024. All rights reserved.