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

Sinopsis

git prune [-n] [--expire=<date>]

Descripción

El comando git prune elimina objetos inalcanzables más viejos que la ventana de prune (predeterminado 2 semanas). Normalmente lo invoca git gc; raramente se ejecuta directamente.

Los objetos inalcanzables suelen ser de operaciones canceladas, branches eliminados o reflogs expirados. La ventana de gracia previene que prune borre objetos que aún están siendo creados.

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.

Cuándo usar

Most users never run git prune manually — git gc handles it. Reach for it only when gc's defaults don't fit, or when you've explicitly purged history with filter-repo and want immediate space reclamation. Even then, git gc --prune=now is the more common path.

Opciones comunes

OpciónDescripción
-n, --dry-runShow what would be deleted without deleting.
--expire=<date>Only prune objects older than this.
--progressShow progress.
--verboseDetail every object pruned.

Ejemplos

git prune -n
# Preview prune

git prune --expire=now
# Aggressive: delete all unreachables right now

git prune --expire=2.weeks.ago
# Default behavior: keep recent unreachables

Errores comunes

git prune --expire=now can delete objects that are still in the reflog or stash if you've recently expired them. Always run git fsck first to understand what's at risk. On a busy repo, prune while a fetch or rebase is happening can cause issues.

Comandos relacionados

git gc, git fsck, git reflog expire, git repack