Por Anónimo (no verificado) , 29 Abril 2026

El lenguaje de filtros

Los filtros de partial clone se especifican mediante strings DSL cortos. Cada filtro excluye objetos que coinciden con la spec de la transferencia.

Filtros comunes

  • blob:none — omitir todos los blobs.
  • blob:limit=<n>[kmg] — omitir blobs mayores que el umbral.
  • tree:<depth> — omitir trees más profundos que depth.
  • sparse:oid=<blob> — usar una spec sparse-checkout almacenada como blob.
  • object:type=tag — excluir objetos de un tipo (Git 2.36+).
  • combine:F1+F2+... — combinar múltiples filtros con URL-encoding.

Ejemplos

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

Elegir un filtro

Caso de usoFiltro
Desarrollo diario en un subconjuntoblob:none + sparse-checkout
CI para una app específicablob:none + sparse-checkout cono
Solo análisis de historiatree:0
Archivos multimedia grandes separadosblob:limit=10m
Despliegue release de solo lecturablob:none + checkout un tag

Filtro sparse

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

Combinar

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

Verificar

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

Errores comunes

Usar tree:0 para desarrollo activo. Olvidar que blob:limit es por blob, no agregado.