Error en la inserción de Git – desempaquetar objects anormales

Estoy usando un repository remoto de git. Firmé mis files con éxito y ahora estoy tratando de llevarlo a cabo.

La operación falla con este post:

git.exe push --progress "origin" master:master error: unpack failed: unpack-objects abnormal exit error: RPC failed; result=18, HTTP code = 200 

Yo uso el cliente TortoiseGit en Windows 7.

¿Por qué recibo este post? cómo recuperarse de este estado?

Según este artículo, git repack remote/origin/master podría ayudar en caso de que tu repository local estuviera dañado. Para comprobar que puedes intentar clonar tu repository remoto en el nuevo directory y probar push desde él.

Si su repository de git está alojado automáticamente, verifique los derechos del sistema de files en el directory de git remoto. Si esto se corrompe, es posible que su server git simplemente no tenga derechos.

Por ejemplo, tengo mi propio sistema de gitosis en el server de Ubuntu. Cuando creo el git repo en el server, ejecuto sudo git init --bare <repo name> Tengo que ejecutar sudo chgrp -R gitosis <repo name> && sudo chown -R gitosis <repo name> .

Esto también ocurre cuando el control remoto no tiene espacio, intente liberar espacio.

También verifica si tu disco no está lleno. Me encontré con el mismo problema en uno de mis VPS hace unos minutos.

Verifique los permissions en el repository remoto / origen. ¿Son escribibles por el usuario git? Si no, obtendrás este error. Algo como:

 chown git_user.git_user -R /path/to/repo/your_funky_repo 

debería hacer el truco en los sistemas * nix. Si su control remoto está en Windows, estoy seguro de que hay algo equivalente que podría ejecutar.

En Windows, el único arreglo que funcionó para mí fue eliminar las siguientes líneas de mi file .gitconfig:

 [cnetworkingential] helper = !'C:\\Users\\YourNameHere\\AppData\\Roaming\\GitCnetworkingStore\\git-cnetworkingential-winstore.exe' 

Una vez que hice eso, presioné manualmente una vez (con éxito), luego agregué las líneas anteriores a .gitconfig, y todo funcionó.

Encontré este problema cuando configuré un nuevo server remoto y creé las repositorias / carpetas git remotas con mi usuario root (en lugar de mi count de usuario personal). Problema solucionado al eliminar los repositorys git y rehacerlos con mi count personal. todo funciona como se espera ahora.

En mi server (gitlab), primero necesité chown -R git: git repositories /, pero git repack no funcionó. El problema se resolvió cuando utilicé scp para copyr el file object de mi repository local al server:

  scp .git/objects/0d/449dd91d8c20c1820d1284371b28637e08a0f3 root@server:/home/git/repositories/my/project.git/objects/0d/ 

Si usa una URL HTTP, no puede enviar datos a través de HTTP. HTTP es para acceso de solo lectura. Use ssh en su lugar.

Haga git remote -v para verificar si su URL de repository es HTTP. Puede cambiar esta URL haciendo este git remote set-url origin ssh:user@server/dir/project.git

¡Después de eso, puedes empujar!

Me he encontrado con el mismo problema cuando cambié mi git de la connection de VPN a https.

Algo sucedió en mi repository git y no pude seguir presionando, pero tirar todavía funcionaba. También probé la Solución con git -repack remote/origin/master , pero igual Issue.

Para resolver esto, I just made a new clone from my repo with the new connection y pude usar los methods de inserción conocidos. No sé realmente por qué esto no podría ser resuelto por git-repack, ¡pero de esta manera funciona con security!

Supongo que había algo que no encaja con la configuration remota de VPN para el server, ya que cambié el método de acceso a https.

Espero que esto ayude.