GIT Push falla: RPC falló; resultado = 22, código HTTP = 411

127

Solo tengo una rama. Durante unos meses he estado usando

git push origin master

para comprometerme con mi repositorio local. Anoche, después de hacer algunos cambios menores en mi repositorio local e intentar presionar usando el mismo comando, recibí este 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

Busqué en Google y encontré preguntas como esta y esta , pero ninguna de las respuestas a estas preguntas resuelve mi problema.

La mayoría de las respuestas sugieren el problema de la cabeza desprendida . Sin embargo, no creo que mi cabeza esté separada. Tampoco creo que esté en la rama equivocada (ya que solo tengo una rama ...)

Hice algunos experimentos para descubrir qué está mal, y aquí están los resultados que obtuve:

(1) Primero viene mi git statussalida

# 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) Cuando escribo git reflog, puedo ver todas mis confirmaciones locales, pero el repositorio remoto simplemente no se actualizará.

(3) Cuando escribo git branch -a, me sale

* master
  remotes/origin/master

(4) Cuando escribo git remote show origin, me sale

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

Creo que la última línea de salida (el "reenviable rápido") es extraña, pero no estoy seguro de qué está mal ...

Zening Qu
fuente
fast-forwardablesignifica que puede enviar los cambios locales a la sucursal remota, nada criminal :-)
Maksym Polshcha

Respuestas:

292

Si intenta empujar un gran conjunto de cambios a un repositorio Git con HTTP o HTTPS, es posible que aparezca un mensaje de error como error: RPC failed; result=22, HTTP code = 411. Esto es causado por una configuración predeterminada de Git que limita ciertas operaciones HTTP a 1 megabyte.

Para cambiar este límite, ejecute dentro de su repositorio local

git config http.postBuffer *bytes*

donde bytes es el número máximo permitido de bytes. Por ejemplo:

git config http.postBuffer 524288000

Por 500MB (gracias @Hengjie)

Maksym Polshcha
fuente
52
Un ejemplo es git config http.postBuffer 524288000para 500MB.
Hengjie
9
Si está utilizando gitlab, es posible que también necesite cambiar su configuración nginx ( /etc/nginx/sites-available/gitlab). Más información: github.com/gitlabhq/gitlabhq/issues/3099
DanielB
¿y si se nota RPC failed; result=22, HTTP code = 502?
Dipesh Raichana
2
Todavía recibo el siguiente error git: RPC falló; resultado = 22, código HTTP = 504 en bitbucket en android studio
DJtiwari
23

También puede hacer esto a nivel mundial:

git config --global http.postBuffer 524288000

Eso permitirá que todos los repositorios locales envíen hasta 500 MB de datos.

jdr0dn3y
fuente
3

Ninguna de las soluciones proporcionadas funcionó para nosotros. Tuvimos que cambiar para sshhacer que esto funcione en lugar de la HTTPSsolución.

Javaauthority
fuente
2

Si está utilizando TortoiseGit para Windows, la forma más sencilla es utilizar la configuración integrada.

En un explorador de archivos, presione el botón izquierdo del mouse, seleccione TortoiseGit -> Configuración . Acepta el mensaje de información. Ahora, puede elegir si desea configurar la propiedad solo para el proyecto actual o el sistema en su totalidad. Para la configuración de todo el sistema, presione "editar gitconfig de todo el sistema" y agregue la siguiente línea a la sección [http]:

postBuffer = 524288000

(si la sección [http]no existe, créala)

Errepunto
fuente
1

Resolví el error 22 de la siguiente manera: en el comando "git clone" NO proporcioné al usuario: contraseña. El clon funcionó, pero no el empujón. Solución para el error 22: Modifique .git / config la url de esta manera: url = http: // user: pwd @ host / ... Entonces, la inserción funcionó.

Rob Lassche
fuente