Git push 失败: RPC 失败; result = 22,HTTP code = 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

我在谷歌上搜索并找到了像 这个这个这样的问题,但是这些问题的答案都没有解决我的问题。

大多数的答案暗示了 头部分离的问题。然而我不认为我的头是分离的。我也不认为自己站错了树枝(因为我只有一根树枝... ...)

我做了一些实验来找出问题所在,以下是我得到的结果:

首先是我的 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)当我输入 git reflog时,我可以看到所有的本地提交,但是远程存储库就是不会得到更新。

(3)当我输入 git branch -a时,我得到

* master
remotes/origin/master

(4)当我输入 git 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)

我认为最后一行输出(“快进”)很奇怪,但我不知道哪里出错了..。

73922 次浏览

如果尝试使用 HTTP 或 HTTPS 将大量更改推送到 Git 存储库,则可能会得到错误消息,如 error: RPC failed; result=22, HTTP code = 411。这是由于 Git 配置缺省值将某些 HTTP 操作限制为1MB。

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

git config http.postBuffer *bytes*

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

git config http.postBuffer 524288000

500 MB (谢@恒杰)

你也可以在全球范围内这样做-

git config --global http.postBuffer 524288000

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

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

在文件资源管理器中,按鼠标左键,选择 TortoiseGit-> 设置。接受信息留言。现在,您可以选择是否仅为当前项目或系统外观配置属性。对于 Systemwide 配置,按“ edit systemwide gitconfig”并将下一行添加到 [http]部分:

postBuffer = 524288000

(如果 [http]节不存在,创建它)

所提供的解决办法对我们都不管用。我们不得不切换到 ssh来使这个工作代替 HTTPS解决方案。

我解决了22个错误如下: 在“ git clone”命令中,我没有提供 user: password。 克隆人起作用了,但推力不够。 22错误的解决方案: 修改. git/config 网址如下: Url = http://user:pwd@host/... 然后,推动起作用了。

使用 gitlfs 并跟踪大于1mb 的文件,然后再次尝试推送