2010-04-24 19 views
107

He clonado un git repo que he alojado en github en mi laptop. Pude lanzar exitosamente un par de commits a github sin problema. Sin embargo, ahora me sale el siguiente error:Git falla al presionar commit a github

Compressing objects: 100% (792/792), done. 
error: RPC failed; result=22, HTTP code = 411 
Writing objects: 100% (1148/1148), 18.79 MiB | 13.81 MiB/s, done. 
Total 1148 (delta 356), reused 944 (delta 214) 

Desde aquí simplemente se cuelga y, finalmente, tengo que CTRL +C de nuevo a la terminal.

+0

¿Por qué hay un error HTTP? ¿No presionas a Github a través de SSH? – Cascabel

+0

Para aclarar: la url en la sección 'origen' de' .git/config' no dice http, ¿o sí? – Cascabel

+0

@Jefromi He clonado mi repositorio privado usando el enlace http de lectura/escritura. –

Respuesta

249

Tuve el mismo problema y creo que tiene que ver con el tamaño del repositorio (editado o el tamaño de un archivo en particular) que está tratando de insertar.

Básicamente pude crear nuevos repositorios e insertarlos en github. Pero uno existente no funcionaría.

El código de error HTTP parece respaldarme, es un error de 'Longitud requerida'. Así que tal vez es demasiado grande para calcular o saludado que el máximo. Quién sabe.

EDITAR

I found that the problem may be files that are large. I had one update that would not push even though I had successful pushes up to that point. There was only one file in the commit but it happened to be 1.6M

So I added the following config change

git config http.postBuffer 524288000 

To allow up to the file size 500M and then my push worked. It may have been that this was the problem initially with pushing a big repo over the http protocol.

FIN EDITAR

la forma en que pude conseguir que funcione (EDIT antes he modificado tampón posterior) era manchar a mi repo, copiarlo a una máquina que puede hacer GIT sobre ssh, y empujarlo a github. Luego, cuando intente hacer un push/pull desde el servidor original, debería funcionar sobre https. (dado que es una cantidad de datos mucho más pequeña que una inserción original).

Espero que esto ayude.

+0

Funcionó para mí también, aunque tuve un error HTTP 501 en lugar del 411. ¡Gracias! –

+0

Gracias! esto funcionó e incluso aceleró la carga. Intentaba impulsar un sitio web a los nuevos sitios web de Windows Azure y seguía fallando. – Jake

+0

No funcionó para mí :( –

3

Parece un problema del servidor (es decir, un problema "GitHub").
Si nos fijamos en this thread, puede suceder cuando el git-http-backend consigue un montón dañado. (Y ya que just put in place un smart http support ...)
Pero cualquiera que sea la causa real es, sino que también puede estar relacionado con la reciente sporadic disruption in one of the GitHub fileserver.

¿Todavía aparece este mensaje de error? Porque si es así:

  • comprobar su versión de Git local (y actualice a la última uno) informe
  • esto como una GitHub bug.

Nota: el Smart HTTP Support es un gran problema para aquellos de nosotros detrás de un proxy firewall de la empresa con sede en autenticado!

From now on, if you clone a repository over the http:// url and you are using a Git client version 1.6.6 or greater, Git will automatically use the newer, better transport mechanism.
Even more amazing, however, is that you can now push over that protocol and clone private repositories as well. If you access a private repository, or you are a collaborator and want push access, you can put your username in the URL and Git will prompt you for the password when you try to access it.

Older clients will also fall back to the older, less efficient way, so nothing should break - just newer clients should work better.

De nuevo, asegúrese de actualizar su cliente Git primero.

+0

Tengo problemas similares detrás de un enrutador inalámbrico ADSL (French Orange Livebox): imposible publicar mi clave SSH en https://github.com, presiono atascado en https ... hasta que use un acceso a Internet alternativo. –

+0

El Smart HTTP Support logró que pasara por nuestro servidor proxy de firewall cuando recibí el mensaje "error: Error de RPC; resultado = 22, código HTTP = 0" cuando traté de enviar. – Boggin

+0

@Boggin Sí, confirmo que http inteligente es generalmente la opción preferida cuando uno está detrás de un proxy. El puerto http/https estándar está (casi) abierto siempre. – VonC

0

El problema para presionar principalmente se debe al tamaño de los archivos que se deben presionar. Estaba tratando de empujar algunas librerías de tan solo 2 mb de tamaño, entonces también el impulso daba error de RPC con el resultado 7. La línea es de 4 mbps y funciona bien. Algunos intentos posteriores al impulso me dieron éxito. Si ese error llega, espere unos minutos y siga intentándolo.

También descubrí que hay algunos errores de RPC si el github está inactivo o está recibiendo una red inestable a su lado.

Por lo tanto, ¡seguir intentando después de algunos intervalos es la única opción!

1

Empujar desde Git GUI en lugar de Bash trabaja para mí.

0

En estos casos, puede probar ssh si https está atascado.

También puede intentar aumentar el tamaño del búfer a una cifra astronómica de manera que usted no tiene que preocuparse por el tamaño del búfer más git config http.postBuffer 100000000