推送到github时,Git失败

我克隆了我在github上托pipe的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回到terminal。

我有同样的问题,并认为它与你试图推动的回购的大小(编辑或特定文件的大小)有关。

基本上我能够创造新的回购,并推到github。 但现有的一个是行不通的。

HTTP错误代码似乎支持我这是一个'长度要求'的错误。 所以也许它是太大,以计算或greating最大。 谁知道。

编辑

我发现问题可能是很大的文件。 我有一个更新,即使我已经成功推进到这一点,也不会推动。 提交中只有一个文件,但碰巧是1.6M

所以我添加了下面的configuration更改

 git config http.postBuffer 524288000 

允许最大文件大小为500M,然后我的推送工作。 可能是因为这个问题最初是通过http协议推送一个大回购。

结束编辑

我可以得到它的工作方式(修改postBuffer之前编辑)是tar我的回购,将其复制到一台机器,可以通过SSH混帐,并推送到github。 然后,当您尝试从原始服务器进行推/拉时,它应该通过https工作。 (因为它比原来的推送数据less得多)。

希望这可以帮助。

看起来像一个服务器问题(即“GitHub”问题)。
如果你看一下这个线程 ,当git-http-backend得到一个损坏的堆时,会发生这种情况(因为他们只是提供了一个智能http支持 …)
但无论实际的原因是什么,它也可能与最近在GitHub文件服务器中出现的零星中断有关。

你还看到这个错误信息? 因为如果你这样做:

  • 检查你的本地Git版本(并升级到最新版本)
  • 报告这是一个GitHub错误 。

注意: 智能HTTP支持对于我们这些基于authentication的企业防火墙代理背后的人来说是一件大事!

从现在开始,如果你通过http:// url克隆一个版本库,并且你使用的是一个Git客户端1.6.6或者更高版本,那么Git会自动使用更新的更好的传输机制。
然而,更令人惊讶的是,现在你可以推翻这个协议并克隆私有存储库。 如果你访问一个私有存储库,或者你是一个协作者,并且想要推送访问,你可以把你的用户名放在URL中,当你试图访问它时,Git会提示你input密码。

老客户也将回落到更老,效率更低的方式,所以没有什么应该打破 – 只要新客户应该更好地工作。

所以再次确保先升级你的Git客户端。

从Git GUI而不是Bash为我工作。

主要推送的问题是由于需要推送的文件的大小。 我试图推动一些只有2 MB大小的库,然后推动RPC的结果是错误的7.结果是4 mbps的线路,工作正常。 一些后来尝试推动让我成功。 如果出现这种错误,请等待几分钟,然后继续尝试。

我还发现,如果github崩溃或者networking不稳定,会出现一些RPC故障。

所以在一段时间后继续尝试是唯一的select!

在这些情况下,如果https卡住,您可以尝试ssh。

你也可以尝试增加缓冲区大小到一个天文数字,这样你就不必担心缓冲区的大小了git config http.postBuffer 100000000