Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git repack [-a] [-d] [-l] [--depth=<n>] [--window=<n>]

Descrizione

Il comando git repack riconfeziona gli oggetti del repository, combinando più pack in uno e opzionalmente spostando oggetti loose in pack. È il modo principale in cui Git rimane compatto. git gc chiama repack come parte del suo lavoro; il repack manuale espone controllo più fine sui parametri di ricerca delta.

Nell'uso quotidiano, git repack si integra con alias e CI.

Capire il modello dati di Git aiuta a prevedere i risultati.

Quando usarlo

La maggior parte degli utenti si affida a gc. Ricorri direttamente a repack quando regoli lo storage su un server (i repo grandi beneficiano di --depth, --window personalizzati) o quando investighi il layout di storage.

Opzioni comuni

OpzioneDescrizione
-aImpacchetta tutto raggiungibile in un singolo pack.
-ACome -a ma mantiene irraggiungibili loose.
-dCancella pack ridondanti dopo il repacking.
-lPassa --local a pack-objects.
--depth=<n>Profondità massima della catena delta.
--window=<n>Dimensione della window per selezione delta.
-k, --keep-pack=<name>Mantiene il pack nominato intatto.

Esempi

git repack -ad
# Singolo pack, elimina quelli ridondanti

git repack -a -d --depth=50 --window=250
# Packing più stretto per risparmi di storage (più lento)

git repack -A -d
# Mantieni irraggiungibili loose per sicurezza

Errori comuni

Parametri aggressivi consumano RAM e CPU sproporzionati allo spazio risparmiato. I valori predefiniti sono ragionevolmente tunati. Dimenticare -d dopo -a lascia pack duplicati.

Comandi correlati

git gc, git pack-objects, git verify-pack, git prune