Par Anonyme (non vérifié) , 29 avril 2026

Le langage des filtres

Les filtres de partial clone sont spécifiés par de courtes chaînes DSL. Chaque filtre exclut les objets correspondant à la spec du transfert.

Filtres courants

  • blob:none — omettre tous les blobs.
  • blob:limit=<n>[kmg] — omettre blobs plus grands que le seuil.
  • tree:<depth> — omettre trees plus profonds que depth.
  • sparse:oid=<blob>.
  • object:type=tag (Git 2.36+).
  • combine:F1+F2+....

Exemples

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

Choisir un filtre

Cas d'usageFiltre
Développement quotidien sur sous-ensembleblob:none + sparse-checkout
CI pour app spécifiqueblob:none + sparse-checkout cône
Analyse d'historique seuletree:0
Gros médias séparésblob:limit=10m
Déploiement release lecture seuleblob:none + checkout un tag

Filtre sparse

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

Combinaison

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

Vérifier

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

Erreurs courantes

Utiliser tree:0 pour développement actif.