Sinopsis
git ls-files [-c] [-d] [-m] [-o] [-i] [--exclude-standard]
Descripción
El comando git ls-files lista archivos en el index y árbol de trabajo. Sin opciones muestra archivos rastreados; con --others muestra no rastreados; con --ignored muestra ignorados.
Plumbing usado por scripts que necesitan saber exactamente qué archivos rastrea Git. Más estable que parsear git status.
En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.
Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.
Cuándo usar
Most users invoke porcelain like git status or git grep rather than ls-files. Reach for it in scripts that operate on tracked files (lint tools, formatters, sync scripts) where you want a clean, ignore-aware list.
Opciones comunes
| Opción | Descripción |
|---|---|
-c, --cached | Show cached files (default). |
-d | Show deleted files. |
-m | Show modified files. |
-o | Show other (untracked) files. |
-i | Show ignored files. |
--exclude-standard | Apply standard ignore rules. |
-s, --stage | Show stage info (for unmerged paths). |
-z | NUL-terminated output. |
Ejemplos
git ls-files
# Every tracked file
git ls-files -o --exclude-standard
# Untracked, non-ignored files
git ls-files -m
# Locally modified tracked files
git ls-files -s
# Show mode, SHA, and stage number for each entry
Errores comunes
Forgetting --exclude-standard when listing untracked files swamps you with ignored junk. Combining filters can be confusing — if you pass both -c and -o, the meaning depends on context.
Comandos relacionados
git status, git ls-tree, git update-index, git grep