Da Anonimo (non verificato) , 29 Aprile 2026

Il linguaggio dei filtri

I filtri di clone parziale sono specificati da brevi stringhe DSL.

Filtri comuni

  • blob:none — omette tutti i blob.
  • blob:limit=<n>[kmg].
  • tree:<depth>.
  • sparse:oid=<blob>.
  • object:type=tag (Git 2.36+).
  • combine:F1+F2+....

Esempi

git clone --filter=blob:none url big-no-blobs
git clone --filter=blob:limit=10m url big-small-blobs
git clone --filter=tree:0 --no-checkout url history-only
git clone --filter=combine:blob:none+tree:0 url metadata-only

Scegliere un filtro

Caso d'usoFiltro
Sviluppo quotidiano su un sottoinsiemeblob:none + sparse-checkout
CI per app specificablob:none + sparse-checkout cone
Solo analisi della storiatree:0
File media grandi separatiblob:limit=10m
Deploy di release read-onlyblob:none + checkout di un tag

Filtro sparse

blob_oid=$(git hash-object .sparse)
git clone --filter=sparse:oid=$blob_oid url

Combinare

git clone --filter=combine:blob%3Anone+tree%3A0 url

Verifica

git config --get remote.origin.partialclonefilter
git rev-list --missing=print HEAD | wc -l
du -sh .git/objects

Errori comuni

Usare tree:0 per sviluppo attivo.