tag - Error de extracción de GIT: el objeto remoto está dañado
github tags (7)
Acabo de recibir este error y pasé medio día haciendo todas las cosas descritas en el post: fsck, repack, gc, configurando las opciones de memoria.
También siguió esta publicación: http://git.kernel.org/cgit/git/git.git/tree/Documentation/howto/recover-corrupted-blob-object.txt?id=HEAD
Pero al final, fue tan simple como encontrar el objeto dañado (21f3981dd35fccd28febabd96f27241eea856c50 en este caso) en el repositorio simple y reemplazarlo con la versión no dañada (que se puede encontrar en la carpeta .git de cualquiera de los repositorios locales que extrajo). / clonado desde el repositorio desnudo.)
$ git pull
remote: fatal: object 21f3981dd35fccd28febabd96f27241eea856c50 is corrupted
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header
¿Alguna idea de por qué esto está fallando?
Cuando ejecuto git --bare fsck-objects --full
solo veo enlaces colgantes pero no enlaces rotos. También git gc
no ayudó de ninguna manera. Cuando vuelvo a clonar o extraigo otro clon, no veo este error.
Agregar git config --global pack.window "0"
funcionó para mí ... junto con lo siguiente
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
Razón:
El clon de Git comprime los datos al clonar el repositorio
Comprime los datos en la memoria del servidor antes de recibir los datos / archivos.
Si el servidor no tiene memoria, obtendrá el error anterior al empaquetar los objetos
Puede solucionar el problema haciendo que git clone el repositorio sin empaquetar los objetos en el servidor con lo siguiente.
git config --global pack.window "0"
Como dijo Julian, vea https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header
Realmente puede ser un problema de memoria, y para asegurarnos de no perder la solución aquí es:
git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"
En el cliente, intente hacerlo así:
git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"
git config --global pack.window "0"
o en el servidor git, intente esto: modifique: /home/git/repositories/***.git/config
, agregue a continuación:
[pack]
window = 0
Esto solucionó el problema para mí y la esperanza me ayuda en otra cosa. :) https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header
Para mí esto fue porque mi servidor remoto que aloja el repositorio de git tenía un objeto / archivo dañado. Cuando intenté volver a empacar, se estaba quedando sin memoria. Actualicé mi memoria de instancia y luego ssh-ed de nuevo y corrí
git gc
Aquí está el enlace a la documentación:
Parece que la respuesta está en los comentarios: git fsck