Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Git informa pack corrupto o falla index-pack? Demuestre primero dónde se perdieron los bytes

Separe base de objetos local dañada, transferencia truncada y productor remoto antes de mover packs, volver a clonar o ejecutar gc.

Ilustración original: separa base local de objetos, transporte y productor remoto de packs.
Ilustración original: localiza el primer límite que perdió o cambió bytes del pack. Watch at Ease

Pack checksum mismatch e invalid index-pack output no señalan al mismo dueño. El segundo puede ser el último síntoma de una transferencia truncada o un productor remoto fallido.

No empiece borrando packs, clonando sobre el único worktree ni ejecutando gc. Conserve primer error y base de objetos, demuestre el límite, recupere de una fuente fiable y cierre con objetos, refs, trabajo y transferencia repetible.

Conserve el primer fallo y congele mutaciones

Guarde comando, versión Git, ruta, stderr, estado, transporte, remote sin credenciales y primera línea checksum, CRC, bad offset, early EOF o index-pack. Detenga gc, repack, prune, fetch, mirror y backup automáticos.

Haga copia de filesystem y conserve aparte cambios no confirmados e index. Registre nombre, tamaño y hash de cada .pack/.idx implicado antes de mover o regenerar.

Decida si falla local, tránsito o remoto

Checksum/CRC de un pack almacenado apunta a la base local; early EOF/index-pack de clone también puede ser truncado, disco cliente, proxy/SSH o pack-objects remoto.

Compare cliente sano, destino vacío y transporte alternativo aprobado. Un clone viejo, todos los clones de un repo o todos los repos de un cliente dan evidencias distintas.

Mapee pack, index, objetos y refs

Ejecute git fsck --full en la copia y git verify-pack sobre el par exacto. Reconstruir index con index-pack no prueba que todas las refs necesarias sean alcanzables.

Separe checksum de pack, checksum/CRC de index, bad object offset, objeto referenciado ausente y dangling; registre refs/commits dependientes.

Recupere lo mínimo desde fuente fiable

Si el clone local es descartable y remote está verificado, clone en otro directorio, conserve cambios y compare commit IDs. Para servidor dañado use backup o clone verificado.

Restaure solo objetos o pack material exacto. salvage y unpack-objects van en una copia; no permiten borrar evidencia ni ejecutar gc/prune sobre datos incompletos.

Cierre con integridad, refs, trabajo y repetición

Ejecute fsck completo y compare branches, tags y commit IDs; confirme cambios locales y objetos críticos. Checkout de una rama no prueba todo.

Repita clone/fetch original en destino vacío. Cierre solo con integridad limpia, refs iguales, trabajo contabilizado y transferencia sin truncado.

Ilustración original: decide entre corrupción local, truncado, objeto ausente y pack dañado.
Ilustración original: elige recuperación mínima y valida objetos y refs. Watch at Ease