git grep

Depuración

Busca texto en los archivos con seguimiento


El comando 'git grep' busca en los archivos que sigue Git e imprime cada línea que coincide con su nombre de archivo. Es más rápido que un grep normal en proyectos grandes, omite archivos sin seguimiento e ignorados (como node_modules) y puede buscar en cualquier commit o rama sin extraerla.

Sinopsis

git grep [<options>] <pattern> [<tree>...] [--] [<pathspec>...]
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Opciones

Haz clic en una opción para desplegarla

Principiante (5)

Antepone a cada coincidencia su número de línea.

RecomendadoSaltar directamente a la línea encontrada

Ejemplo

git grep -n cart

Ignora las diferencias entre mayúsculas y minúsculas.

RecomendadoEncontrar una palabra escrita con cualquier mayúscula

Ejemplo

git grep -i welcome

Muestra el número de líneas coincidentes por archivo en lugar de las líneas.

Cuando haga faltaCuántas líneas coinciden en cada archivo

Ejemplo

git grep -c cart

Muestra solo los nombres de los archivos con alguna coincidencia.

Cuando haga faltaListar qué archivos coinciden, p. ej. para abrirlos todos

Ejemplo

git grep -l login

Hace coincidir el patrón solo como palabra completa.

Cuando haga faltaEvitar coincidencias parciales

Ejemplo

git grep -w i

Elegir la opción adecuada

git grep vs grep

Por qué usar la búsqueda de Git

ComandoBusca enVersiones antiguas
grep -rCada archivo del disco, incluido node_modulesNo
git grepSolo archivos con seguimientoSí: git grep x <commit>

Ejemplos

Buscar texto

git grep "cart"

Cada línea de cada archivo con seguimiento que contiene cart.


Con números de línea

git grep -n "cart"

Añade el número de línea.


En otro commit

git grep "cart" v1.0

Busca en el proyecto tal como estaba en v1.0.


Solo algunos archivos

git grep "TODO" -- "*.js"

Limita la búsqueda a archivos JavaScript.

Ejemplos de flujos de trabajo

1
git grep -n "count("

Cada llamada con su línea

2
git grep -l "count("

La lista de archivos que editar

Solución de problemas

Sin salida, código de salida 1

Causa: No hubo coincidencias

Revisa la ortografía, prueba -i, o comprueba que el archivo tiene seguimiento

No se busca en un archivo que acabas de crear

Causa: git grep solo busca en archivos con seguimiento

Haz git add, o usa git grep --untracked

Consejos y trampas

Buenas prácticas

  • ✓Activa los números de línea una vez: git config --global grep.lineNumber true.
  • ✓Busca en versiones antiguas con git grep <pattern> <tag> en lugar de extraerlas.

Errores comunes

  • ✗Esperar archivos sin seguimiento en los resultados — añádelos antes, o usa --untracked.
  • ✗Olvidar las comillas en patrones con espacios o caracteres especiales.

Preguntas frecuentes

A:

Sí: básicas por defecto, -E para extendidas, -P para sintaxis Perl.

A:

Busca en los árboles que nombras; para encontrar el commit que añadió un texto, usa git log -S "text".