Da Anonimo (non verificato) , 29 Aprile 2026

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

OpzioneDescrizione
--allImpacchetta tutti i ref (default impacchetta solo branch e tag).
--no-pruneNon 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