L'area di staging, demistificata
L'index (alias cache, area di staging) vive in .git/index come file binario che descrive cosa conterra il prossimo commit.
Ispezione
git ls-files --stage
git ls-files --debug
git diff --cached
git diff
Versioni dell'index
git config index.version 4
git update-index --index-version 4
Cache delle stat
L'index registra device, inode, ctime, mtime, size per ogni voce.
Sparse index
git sparse-checkout init --cone
git sparse-checkout set apps/web libs/shared
git config core.sparseCheckoutCone true
git config index.sparse true
Merge a tre vie nell'index
git ls-files -u
git checkout-index --stage=2 -- file
git checkout-index --stage=3 -- file
Errori comuni
Credere che git add faccia staging "permanente" — fa staging di uno snapshot.
Leve di performance
Leve: index.version=4, core.untrackedCache=true, core.fsmonitor=true, sparse index, feature.manyFiles=true.