git push fails: RPC failed; result=22, HTTP code = 411

GitGithub

Git Problem Overview


I have only one branch. For a few months I have been using

git push origin master

to commit to my local repository. Last night after I made some minor changes to my local repository and tried to push using the same command, I got this error:

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

I googled and found questions such as this one and this one, but none of the answers to these questions solves my problem.

Most of the answers suggest the problem of detached head. Yet I don't think my head is detached. Nor do I think I am on the wrong branch (as I only have one branch...)

I did a few experiments to figure out what's wrong, and here are the results I got:

(1) First comes my git status output

> # On branch master > # Untracked files: > # (use "git add ..." 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) When I type git reflog, I can see all my local commits, but the remote repository just won't get updated.

(3) When I type git branch -a, I get

> * master > remotes/origin/master

(4) When I type git remote show origin, I get

> * 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)

I think the last line of output (the "fast-forwardable") is weird, but I am not sure what is wrong...

Git Solutions


Solution 1 - Git

If you attempt to push a large set of changes to a Git repository with HTTP or HTTPS, you may get an error message such as error: RPC failed; result=22, HTTP code = 411. This is caused by a Git configuration default which limits certain HTTP operations to 1 megabyte.

To change this limit run within your local repository

git config http.postBuffer *bytes*

where bytes is the maximum number of bytes permitted. For example:

git config http.postBuffer 524288000

For 500MB (thanks @Hengjie)

Solution 2 - Git

You can also do this globally -

git config --global http.postBuffer 524288000

That will allow all local repos to push up to 500MB of data.

Solution 3 - Git

None of the solutions provided worked for us. We had to switch to ssh to make this work instead of the HTTPS solution.

Solution 4 - Git

If you are using TortoiseGit for Windows, the easiest way is using the integrated configuration.

In a file explorer press left mouse button, select TortoiseGit -> Settings. Accept the info message. Now, you can choose if you want to configure the property only for the current project or system whide. For systemwide configuration press "edit systemwide gitconfig" and add the next line to the section [http]:

postBuffer = 524288000

(it the section [http] doesn't exist, create it)

Solution 5 - Git

I solved the 22 error as follows: In the "git clone" command I did NOT supply the user:password. The clone worked, but not the push. Solution for the 22 error: Modify .git/config the url like this: url=http://user:pwd@host/... Then, the push worked.

Solution 6 - Git

use git lfs and track files greater than 1 mb and then again try to push

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionZening QuView Question on Stackoverflow
Solution 1 - GitMaksym PolshchaView Answer on Stackoverflow
Solution 2 - Gitjdr0dn3yView Answer on Stackoverflow
Solution 3 - GitjavaauthorityView Answer on Stackoverflow
Solution 4 - GitErrepuntoView Answer on Stackoverflow
Solution 5 - GitRob LasscheView Answer on Stackoverflow
Solution 6 - GitManan khandelwalView Answer on Stackoverflow