git推送失败:RPC失败; 结果= 22,HTTP代码= 411

我只有一个分支。 几个月来,我一直在使用

git push origin master 

提交到我的本地存储库。 昨天晚上,我对本地存储库进行了一些小的修改,然后尝试使用相同的命令,我得到了这个错误:

 error: RPC failed; result=22, HTTP code = 411 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly Everything up-to-date 

我search了一下,发现了这个和这个问题 ,但这些问题的答案都没有解决我的问题。

大部分答案都表明了头脑分离的问题。 然而我不认为我的头是分离的。 我也不认为我在错误的分支(因为我只有一个分支…)

我做了一些实验来弄清楚什么是错的,下面是我得到的结果:

(1)首先来我的git status输出

 # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # egal.aux # egal.blg # egal.out # egal.pdf # egalcar.aux # egalcar.blg # egalcar.pdf nothing added to commit but untracked files present (use "git add" to track) 

(2)当我inputgit reflog ,我可以看到所有的本地提交,但是远程仓库不会被更新。

(3)当我键入git branch -a ,我得到了

 * master remotes/origin/master 

(4)当我inputgit remote show origin ,我得到

 * remote origin Fetch URL: http://github.com/CherryQu921/egaldoc_en Push URL: http://github.com/CherryQu921/egaldoc_en HEAD branch: master Remote branch: master tracked Local ref configured for 'git push': master pushes to master (fast-forwardable) 

我认为输出的最后一行(“快进”)是奇怪的,但我不知道什么是错的…

如果尝试使用HTTP或HTTPS将大量更改推送到Git存储库,则可能会收到错误消息,如: RPC failed; result=22, HTTP code = 411 RPC failed; result=22, HTTP code = 411 。 这是由一个Gitconfiguration默认的,它将某些HTTP操作限制为1兆字节。

在本地存储库中更改此限制运行

 git config http.postBuffer *bytes* 

其中bytes是允许的最大字节数。 例如:

 git config http.postBuffer 524288000 

500MB(谢谢@恒捷)

你也可以在全球做这个 –

 git config --global http.postBuffer 524288000 

这将允许所有本地回购推送高达500MB的数据。

如果您正在使用Windows的TortoiseGit,最简单的方法是使用集成configuration。

在文件资源pipe理器按下鼠标左键,selectTortoiseGit – >设置 。 接受信息消息。 现在,您可以select是否仅为当前项目或系统configuration属性。 对于全系统configuration,请按“edit systemwide gitconfig”并将下一行添加到部分[http]

 postBuffer = 524288000 

(它的[http]部分不存在,创build它)

没有提供的解决scheme为我们工作。 我们不得不切换到ssh ,而不是HTTPS解决scheme。

我解决了22错误,如下所示:在“git克隆”命令我没有提供用户:密码。 克隆工作,但不是推。 对于22错误的解决scheme:修改.git / config像这样的URL:url = http:// user:pwd @ host / …然后,推的工作。