Sinossi
git pack-refs [--all] [--no-prune]
Descrizione
Il comando git pack-refs consolida molti file ref individuali (uno per branch/tag in .git/refs/) in un singolo file .git/packed-refs. Questo è più veloce su filesystem dove aprire molti file piccoli è lento (Windows più vecchi, filesystem di rete) e riduce il carico filesystem per repo con migliaia di ref.
Nell'uso quotidiano, git pack-refs si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Quando usarlo
La maggior parte dei repo non ha bisogno di pack-refs manuale — git gc lo esegue come parte della maintenance. Ricorri ad esso direttamente quando script ottimizzazioni di performance su set di ref enormi.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
--all | Impacchetta tutti i ref (default impacchetta solo branch e tag). |
--no-prune | Non rimuove file ref individuali dopo il packing. |
Esempi
git pack-refs --all
# Impacchetta ogni ref in packed-refs
ls .git/refs/heads/ | wc -l
# Dopo il packing, i file individuali sono rimossi
git pack-refs
# Default: impacchetta branch e tag
Errori comuni
Modificare packed-refs a mano può corrompere il repository — usa git update-ref. Dopo pack-refs, gli script che cercano file individuali in .git/refs/heads/ falliscono. Usa git for-each-ref per un lookup portabile.
Comandi correlati
git gc, git update-ref, git for-each-ref, git maintenance