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

Sinopsis

git pack-refs [--all] [--no-prune]

Descripción

El comando git pack-refs consolida refs sueltas (archivos individuales bajo .git/refs/) en un único archivo .git/packed-refs. Esto acelera el listado de refs en repos con miles de branches o tags.

Las nuevas refs siguen escribiéndose como sueltas hasta el próximo pack. Inocuo de ejecutar; git gc lo invoca automáticamente.

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 repos don't need manual pack-refs — git gc runs it as part of maintenance. Reach for it directly when scripting performance optimizations on huge ref sets.

Opciones comunes

OpciónDescripción
--allPack all refs (default packs only branches and tags).
--no-pruneDon't remove individual ref files after packing.

Ejemplos

git pack-refs --all
# Pack every ref into packed-refs

ls .git/refs/heads/ | wc -l
# After packing, individual files are removed

git pack-refs
# Default: pack branches and tags

Errores comunes

Editing packed-refs by hand can corrupt the repository — use git update-ref. After pack-refs, scripts that look for individual files in .git/refs/heads/ fail. Use git for-each-ref for a portable lookup. git help pack-refs opens the full manual page with comprehensive coverage of every option and edge case; it remains the authoritative reference whenever the summary on this page leaves a question unanswered. For team workflows, capturing how your project uses this command in a CONTRIBUTING document avoids repeated onboarding questions and keeps everyone aligned on conventions.

Comandos relacionados

git gc, git update-ref, git for-each-ref, git maintenance