我克隆了一个托管在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回到终端。
7条答案
按热度按时间wz1wpwve1#
我有同样的问题,并认为这与回购的大小(编辑-或特定文件的大小),你试图推动。
基本上,我可以创建新的回购协议并将其推送到github,但现有的回购协议无法工作。
HTTP错误代码似乎支持我,它是一个“要求长度”错误。所以可能它太大,无法计算或超过了最大值。谁知道呢。
编辑
我发现这个问题可能是文件太大。我有一个更新不会推送,即使我已经成功推送到这一点。只有一个文件在提交,但它碰巧是1.6M
因此,我添加了以下配置更改
允许高达500 M的文件大小,然后我的推送工作。这可能是最初通过HTTP协议推送一个大回购协议的问题。
结束编辑
我可以让它工作的方法(在修改postBuffer之前编辑它)是把我的repo存到一台可以通过ssh执行git的机器上,然后把它推送到github.然后当你试图从原始服务器执行push/pull时,它应该可以通过https工作.(因为它比原始push的数据量要小得多).
nxowjjhe2#
如果此命令无效
git配置文件http.postBuffer 524288000
尝试将ssh方法更改为https
ego6inou3#
看起来像是服务器问题(即“GitHub”问题)。
如果您查看这个线程,就会发现当
git-http-backend
得到一个损坏的堆时可能会发生这种情况(因为它们just put in place一个smart http support...)但不管实际原因是什么,也可能与最近的sporadic disruption in one of the GitHub fileserver有关。
您是否仍然看到此错误消息?因为如果您看到:
注意:Smart HTTP Support对于我们这些在基于身份验证的企业防火墙代理后面的人来说是一件大事!
从现在开始,如果你通过
http://
url克隆仓库,并且你使用的是Git客户端1.6.6或更高版本,Git会自动使用更新、更好的传输机制。然而,更令人惊奇的是,你现在可以通过这个协议来克隆私有仓库。如果你访问一个私有仓库,或者你是一个合作者,想要推送访问,你可以把你的用户名放在URL中,当你试图访问它时,Git会提示你输入密码。
较老的客户端也会退回到较老的、效率较低的方式,所以不应该有什么问题--只是较新的客户端应该工作得更好。
因此,请再次确保首先升级您的Git客户端。
5uzkadbs4#
我尝试推送到我自己托管的bonobo-git服务器,但没有意识到,http.postbuffer意味着项目目录...
对于其他困惑的问题
为什么?在我的情况下,我有大的zip文件与资产和一些psd推以及-大的缓冲区,我猜。
如何做到这一点http.postbuffer:在.git文件夹旁边的project src目录中执行该命令,而不是在服务器上执行。
请注意,将创建具有该缓冲区大小的大型临时(块)文件。
注意:只需检查最大的文件,然后设置缓冲区。
xoshrz7s5#
这些对我都不起作用--解决办法是把我的回购计划一点一点地进行,如下所示:
dgenwo3n6#
推送的问题主要是因为需要推送的文件的大小。我尝试推送一些大小仅为2 MB的库,然后推送也给出RPC错误,结果为7。该行为4 mbps,工作正常。随后的一些推送尝试使我成功。如果出现此类错误,请等待几分钟,然后继续尝试。
我还发现,如果github关闭或他们的网络不稳定,会出现一些RPC故障。
因此,在一些间隔后继续尝试是唯一的选择!
wz1wpwve7#
在这些情况下,如果https被卡住,您可以尝试ssh。
你也可以尝试把缓冲区的大小增加到一个天文数字,这样你就不用再担心缓冲区的大小了git config http.postBuffer 10000000