我将我在github上托管的git repo克隆到我的笔记本电脑上。我能够毫无问题地成功地将几个提交推送到github。但是,现在我收到以下错误:
Compressing objects: 100% (792/792), done.
error: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (1148/1148), 18.79 MiB | 13.81 MiB/s, done.
Total 1148 (delta 356), reused 944 (delta 214)
从这里它只是挂起,我终于要 CTRL + C 回到终端。
答案 0 :(得分:271)
我遇到了同样的问题,并认为它与您尝试推送的回购邮件的大小(编辑或特定文件的大小)有关。
基本上我能够创建新的repos并将它们推送到github。但现有的不行。
HTTP错误代码似乎支持我,它是一个'需要长度'错误。所以也许它太大而无法计算或最大化。谁知道呢。
修改
我发现问题可能是 文件很大。我有一个更新 即使我有,也不会推 成功推动到那一点。 提交中只有一个文件 但它碰巧是1.6M
所以我添加了以下配置更改
git config http.postBuffer 524288000
允许最大文件大小500M和 然后我的推动工作。它可能是 这是最初的问题 在http上推了一个大的回购 协议
结束编辑
我可以让它工作的方式(在修改postBuffer之前编辑)是为了重新设置我的仓库,将其复制到可以通过ssh执行git的机器上,并将其推送到github。然后,当您尝试从原始服务器执行推/拉时,它应该通过https工作。 (因为它比原始推送的数据量要小得多)。
希望这有帮助。
答案 1 :(得分:3)
看起来像服务器问题(即“GitHub”问题)
如果您查看this thread,可能会在git-http-backend
获得损坏的堆时发生。(因为他们just put in place a smart http support ...)
但无论实际原因是什么,它也可能与最近的sporadic disruption in one of the GitHub fileserver有关。
您是否仍然看到此错误消息?因为如果你这样做:
注意:Smart HTTP Support对于我们这些基于身份验证的企业防火墙代理的人来说是一个大问题!
从现在开始,如果您通过
http://
网址克隆存储库并且您使用的是Git客户端版本1.6.6或更高版本,Git将自动使用更新,更好的传输机制。
然而,更令人惊讶的是,您现在可以推翻该协议并克隆私有存储库。如果您访问私人存储库,或者您是协作者并希望推送访问权限,则可以将您的用户名放在URL中,当您尝试访问时,Git会提示您输入密码。旧客户也将退回到较旧的,效率较低的方式,因此没有什么可以破解 - 只有新客户才能更好地工作。
再次确保首先升级您的Git客户端。
答案 2 :(得分:3)
如果此命令无效
git config http.postBuffer 524288000
尝试将ssh方法更改为https
git remote -v
git remote rm origin
git remote add origin https://github.com/username/project.git
答案 3 :(得分:1)
从Git GUI而不是Bash推送给我。
答案 4 :(得分:0)
我试图推送到我自己的托管的bonobo-git服务器,但没有意识到http.postbuffer意味着项目目录...
因此仅适用于其他困惑的人:
为什么?就我而言,我有一个带有资产的大型zip文件以及一些PSD,这些PSD也被推入了-我猜想要大一些的缓冲区。
如何执行此操作http.postbuffer:在项目src目录中(而不是在服务器上).git文件夹旁边执行该命令。
请注意,将创建具有该缓冲区大小的大型临时文件。
注意:只需检查最大的文件,然后设置缓冲区即可。
答案 5 :(得分:-1)
主要推动的问题是因为需要推送的文件的大小。我试图推送一些大小为2 mb的库,然后推送也给出了结果为7的RPC错误。该行速度为4 mbps并且工作正常。随后的一些尝试让我获得了成功。如果出现这样的错误,请等待几分钟并继续尝试。
我还发现,如果github关闭或者网络不稳定,会有一些RPC失败。
因此,在一段时间后继续尝试是唯一的选择!
答案 6 :(得分:-1)
在这些情况下,如果https被卡住,您可以尝试使用ssh。
此外,您可以尝试将缓冲区大小增加到天文数字,这样您就不必再担心缓冲区大小了 git config http.postBuffer 100000000