2010-04-14 9 views
6

Y a-t-il un git find analogue de git grep, c'est-à-dire quelque chose qui va trouver un nom de fichier par motif dans l'arbre? J'ai parcouru beaucoup de documentation git et je n'ai pas trouvé ça, mais j'ai du mal à croire qu'il n'existe pas quelque part.y a-t-il une 'git find'?

Répondre

6

Vous pouvez lister tous les fichiers dans un objet arbre à l'aide git ls-tree -r --name-only --full-tree <treeish>. Pipe ceci à travers un grep régulier pour trouver ce que vous cherchez.

+3

que diriez-vous juste 'git ls-files' et pipe que par grep? – hasen

+1

'git ls-files' ne répertorie que les fichiers actuellement présents. La réponse de Geoff montrera * tous * les fichiers dans l'arbre, y compris les fichiers qui ont été supprimés dans le passé. – splicer

1

Il est tout simplement:

git ls-files 'yourpattern' 
+2

qui fonctionne presque; il utilise globs plutôt que regexps, et exige de moi de dire 'ls-files **/filename' plutôt que' ls-files filename'. semble bizarre que git puisse faire des recherches sur regexp à travers le contenu des fichiers mais pas à travers leurs noms de fichiers. –