Da Anonimo (non verificato) , 29 Aprile 2026

Recupero pigro degli oggetti

Il clone parziale (--filter) consente a un clone di omettere alcuni oggetti dal trasferimento iniziale, recuperandoli pigrame quando necessario. Il promisor remote mantiene la sua promessa di fornirli su richiesta.

Spec di filtro

git clone --filter=blob:none url
git clone --filter=blob:limit=1m url
git clone --filter=tree:0 url
git clone --filter=sparse:oid=<oid> url

Come funziona il fetching

git rev-list --objects --missing=allow-promisor HEAD | \
  awk '{print $1}' | git cat-file --batch-check
git fetch --refetch

Ispezione

git config --get-all remote.origin.partialclonefilter
git rev-list --missing=print HEAD | head
git config --get extensions.partialClone

Caveat

  • Operazioni come git log -p su tutta la storia possono attivare fetch massicci on-demand.
  • L'uso disconnesso e limitato.
  • Il server deve supportare il clone parziale (Git 2.22+).

Configurazione server

[uploadpack]
allowFilter = true
allowAnySHA1InWant = true

Combinare con sparse

git clone --filter=blob:none --sparse https://example.com/big.git
cd big
git sparse-checkout init --cone --sparse-index
git sparse-checkout set apps/web
git checkout main

Errori comuni

Usare --filter=tree:0 per lavoro di sviluppo.