2010-04-14 7 views
6

¿Hay un git find analógico de git grep, es decir, algo que encontrará un nombre de archivo por patrón en el árbol? He revisado mucha documentación de git y no he encontrado esto, pero estoy teniendo dificultades para creer que no existe en algún lado.¿hay un 'git find'?

Respuesta

6

Se pueden listar todos los archivos en un objeto árbol usando git ls-tree -r --name-only --full-tree <treeish>. Transfiera esto a través de un grep común para encontrar lo que está buscando.

+3

¿qué tal solo 'git ls-files' y pipe eso a través de grep? – hasen

+1

'git ls-files' solo muestra los archivos que están actualmente presentes. La respuesta de Geoff mostrará * todos * los archivos en el árbol, incluidos los archivos que se eliminaron en el pasado. – splicer

1

Es simplemente:

git ls-files 'yourpattern' 
+2

que casi funciona; usa globs en lugar de expresiones regulares, y requiere que diga 'ls-files **/filename' en lugar de' ls-files filename'. Parece extraño que git pueda hacer búsquedas de expresiones regulares a través del contenido de los archivos, pero no a través de sus nombres de archivo. –