Inicio » Cómo reparar el error 'Corrupt loose object' en repositorios Git locales
Web y Código

Cómo reparar el error 'Corrupt loose object' en repositorios Git locales

✨ Respuesta Rápida

El error crítico de Git error: object file .git/objects/... is empty o corrupt loose object ocurre tras un corte eléctrico repentino, un fallo del disco o un apagado forzado de la máquina mientras Git escribía metadatos en la base de datos de objetos locales de tu repositorio.

El Diagnóstico Rápido

Causa
Objeto suelto de Git corrupto por apagón brusco o fallo en disco
Solución
Identificar y eliminar el objeto dañado en .git/objects/ y restaurar con git fetch
Causa
Referencia de rama apuntando a un commit inexistente
Solución
Ejecutar git fsck --full para localizar el objeto corrupto exacto

El error crítico de Git error: object file .git/objects/... is empty o corrupt loose object ocurre tras un corte eléctrico repentino, un fallo del disco o un apagado forzado de la máquina mientras Git escribía metadatos en la base de datos de objetos locales de tu repositorio.

La Solución Paso a Paso

  1. 1

    Paso 1: Localizar y eliminar el objeto corrupto de la base de datos

    Git detendrá cualquier operación (status, add, commit) si encuentra un objeto corrupto de tamaño 0 bytes. Ejecuta una comprobación del árbol del repositorio para identificar el archivo dañado:

    BASH
    # Ejecutar verificación de integridad física del repositorio
    git fsck --full
    

    (Anota la ruta del hash del objeto marcado como vacío o corrupto, por ejemplo .git/objects/8f/c3a9..., e introduce el comando para eliminarlo físicamente de la base de datos local):

    BASH
    # Eliminar el archivo de objeto corrupto vacío de 0 bytes
    rm .git/objects/8f/c3a9...
    
  2. 2

    Paso 2: Recuperar los objetos eliminados desde tu copia remota

    Una vez que el objeto corrupto ha sido removido, indícale a Git que vuelva a descargar y reconstruir los índices de objetos faltantes desde tu servidor remoto en la nube (como GitHub o GitLab):

    BASH
    # Descargar objetos faltantes sin alterar tus archivos de trabajo locales
    git fetch --all
    
  3. 3

    Paso 3: Verificar y reconstruir el estado del índice local

    Vuelve a comprobar la consistencia general del repositorio y reconecta el puntero de tu rama local de trabajo:

    BASH
    # Validar que no existan más objetos dañados
    git fsck --full
    
    # Si persiste un fallo en la cabecera HEAD, restablécela al commit del remoto
    git update-ref refs/heads/main origin/main
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Evita forzar el apagado directo o el reinicio abrupto de tu PC de desarrollo mientras se ejecutan comandos transaccionales pesados de control de versiones (tales como git checkout, git clone o git gc). Si trabajas en entornos virtuales o servidores locales remotos propensos a cortes eléctricos intermitentes, configura tu flujo para realizar commits pequeños con frecuencia y subirlos a tu remoto para tener un respaldo inmediato de tus hashes seguros.