Da Anonimo (non verificato) , 29 Aprile 2026

LFS non e l'unica risposta

Git LFS risolve un problema ma ne introduce altri: infrastruttura extra, costi di hosting, e una dipendenza soft da un server.

Object storage con manifesti

# assets.json
{
  "logo.psd": {
    "sha256": "8a1b...",
    "url": "s3://my-bucket/assets/8a1b.psd"
  }
}

aws s3 cp s3://my-bucket/assets/8a1b.psd ./logo.psd

git-annex

git annex init
git annex add big-file.psd
git commit -m "Add big-file via annex"
git annex copy --to=cloud-remote

DVC per dataset ML

dvc init
dvc add data/raw
git add data/raw.dvc .gitignore
git commit -m "Track raw dataset with DVC"
dvc push

Submodule che puntano a un repo binario

git submodule add https://example.com/assets-repo assets
git commit -m "Add assets submodule"

Generazione al build time

npm run build:assets
# .gitignore: dist/

Sparse checkout per cloni parziali

git clone --filter=blob:none --sparse <url>
cd repo
git sparse-checkout set src docs

Scegliere

  • Pochi binari, aggiornamenti occasionali → object storage manifest.
  • Molti binari, storia profonda → git-annex o LFS.
  • Dataset e modelli ML → DVC.
  • Contenuto generato → build pipeline.