Sinossi
git ls-files [-c] [-d] [-m] [-o] [-i] [--exclude-standard]
Descrizione
Il comando git ls-files elenca i file noti all'index di Git (e opzionalmente alla working tree). Supporta filtri: cached/staged, deleted, modified, others (untracked), ignored, unmerged e così via. È più veloce e preciso di find per "mostrami tutti i file tracciati".
Nell'uso quotidiano, git ls-files si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Quando usarlo
La maggior parte degli utenti invoca porcelain come git status o git grep piuttosto che ls-files. Ricorri ad esso negli script che operano su file tracciati (strumenti di lint, formattatori, script di sync) dove vuoi una lista pulita ignore-aware.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
-c, --cached | Mostra file cachati (default). |
-d | Mostra file cancellati. |
-m | Mostra file modificati. |
-o | Mostra altri file (untracked). |
-i | Mostra file ignorati. |
--exclude-standard | Applica regole di ignore standard. |
-s, --stage | Mostra info di stage (per path non mergiati). |
-z | Output terminato da NUL. |
Esempi
git ls-files
# Ogni file tracciato
git ls-files -o --exclude-standard
# File untracked, non ignorati
git ls-files -m
# File tracciati modificati localmente
git ls-files -s
# Mostra mode, SHA e numero di stage per ogni entry
Errori comuni
Dimenticare --exclude-standard quando elenchi file untracked ti sommerge di spazzatura ignorata. Combinare filtri può essere confuso — se passi sia -c che -o, il significato dipende dal contesto.
Comandi correlati
git status, git ls-tree, git update-index, git grep