Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git fsck [--full] [--unreachable] [--dangling] [--lost-found]

Descripción

El comando git fsck ('filesystem check') verifica la integridad de la base de datos de objetos: recalcula hashes, busca enlaces rotos, identifica objetos colgantes y reporta corrupción. Es seguro de ejecutar en cualquier repo.

Con --lost-found, escribe objetos colgantes a .git/lost-found/ para inspección. Esencial cuando un repo se vuelve sospechoso tras un crash o problema de disco.

En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
--fullCheck every object, including reachable ones.
--unreachableReport unreachable objects.
--danglingReport dangling objects (default).
--no-danglingSuppress dangling listing.
--lost-foundWrite dangling objects to .git/lost-found/.
--connectivity-onlySkip blob content verification.
--strictReport extra warnings.

Ejemplos

git fsck --full
# Comprehensive check

git fsck --lost-found
# Materialize dangling commits/blobs into recoverable files

git fsck --unreachable --no-reflogs
# Find truly orphaned objects (ignoring reflog protection)

git fsck --connectivity-only
# Faster check that skips content hashing

Errores comunes

Acting on "unreachable" warnings without considering reflog protection can lose recoverable work. fsck is read-only; it never deletes anything itself. Errors found by fsck are often resolved by git gc or by re-cloning a fresh copy.

Comandos relacionados

git gc, git reflog, git verify-pack, git prune