Da Anonimo (non verificato) , 29 Aprile 2026

Basi del packfile

Un packfile raggruppa molti oggetti in un solo file con compressione delta — invece di memorizzare ogni versione di un file per intero, oggetti simili condividono una base e memorizzano solo la differenza. Riduzione di dimensione 5x-50x sui repo reali.

Ispezionare i pack

git verify-pack -v .git/objects/pack/pack-*.idx | head
git count-objects -v
git cat-file --batch-all-objects --batch-check='%(objectname) %(objecttype) %(objectsize:disk)'

Repacking

git repack -ad
git repack -adf --depth=50 --window=250
git repack --geometric=2 -d

Repacking geometrico

Il repacking geometrico (Git 2.32+) mantiene una serie di pack in rapporto 1:N, evitando il costo di repackare tutto ogni volta.

Multi-pack-index

git multi-pack-index write
git multi-pack-index verify

Tuning dei delta

[pack]
windowMemory = 256m
threads = 0
deltaCacheSize = 256m

Bitmap di raggiungibilita

git repack -adb

Errori comuni

Cancellare manualmente i file pack — Git li traccia nei metadati; usare git repack.