Bases du packfile
Un packfile regroupe plusieurs objets dans un fichier avec compression delta — au lieu de stocker chaque version d'un fichier en entier, des objets similaires partagent une base et stockent uniquement la différence. Le résultat est une réduction de taille de 5x à 50x sur des repos réels.
Inspecter les packs
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 géométrique
Le repacking géométrique (Git 2.32+) maintient une série de tailles de pack dans un ratio 1:N.
Multi-pack-index
git multi-pack-index write
git multi-pack-index verify
Réglage delta
[pack]
windowMemory = 256m
threads = 0
deltaCacheSize = 256m
Bitmaps d'atteignabilité
git repack -adb
Erreurs courantes
Supprimer manuellement les fichiers pack — Git les suit dans les métadonnées ; utilisez git repack.