Question:
I have only one branch. For a few months I have been using
1 2 |
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:
1 2 3 4 5 |
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
12345678910111213 # 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.pdfnothing 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
123 * masterremotes/origin/master
(4) When I type git remote show origin
, I get
123456789 * remote originFetch URL: http://github.com/CherryQu921/egaldoc_enPush URL: http://github.com/CherryQu921/egaldoc_enHEAD branch: masterRemote branch:master trackedLocal 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…
Answer:
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
1 2 |
git config http.postBuffer *bytes* |
where bytes is the maximum number of bytes permitted. For example:
1 2 |
git config http.postBuffer 524288000 |
For 500MB (thanks @Hengjie)