Pourquoi sparse
Sparse checkout peuple uniquement un sous-ensemble de l'arbre de travail d'un repo, tout en conservant toutes les métadonnées et l'histoire. Pour les monorepos, cela peut signifier faire checkout de 1% des fichiers et ignorer les 99% restants, accélérant dramatiquement git status, l'indexation IDE et l'usage disque.
Mode cône
git sparse-checkout init --cone
git sparse-checkout set apps/web libs/shared
git sparse-checkout add apps/admin
git sparse-checkout list
Mode non-cône
git sparse-checkout init
cat > .git/info/sparse-checkout <<'EOF'
/*
!/build/
!/legacy/
EOF
git read-tree -m -u HEAD
Cloner sparse
git clone --filter=blob:none --no-checkout https://example.com/big.git
cd big
git sparse-checkout init --cone
git sparse-checkout set apps/web
git checkout main
Vérifier l'index
git ls-files -t | head
git update-index --skip-worktree path
git update-index --no-skip-worktree path
Désactiver
git sparse-checkout disable
Erreurs courantes
Éditer des fichiers hors du cône.
Sparse index
git sparse-checkout init --cone --sparse-index
git config index.sparse true