git grep

Débogage

Chercher du texte dans les fichiers suivis


La commande 'git grep' cherche dans les fichiers suivis par Git et affiche chaque ligne correspondante avec son nom de fichier. Elle est plus rapide qu’un grep normal sur les gros projets, ignore les fichiers non suivis et ignorés (comme node_modules), et peut chercher dans n’importe quel commit ou branche sans l’extraire.

Synopsis

git grep [<options>] <pattern> [<tree>...] [--] [<pathspec>...]
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Options

Cliquez sur une option pour la déplier

Débutant (5)

Préfixer chaque correspondance par son numéro de ligne.

RecommandéAller directement à la ligne trouvée

Exemple

git grep -n cart

Ignorer la différence entre majuscules et minuscules.

RecommandéTrouver un mot quelle que soit sa casse

Exemple

git grep -i welcome

Afficher le nombre de lignes correspondantes par fichier au lieu des lignes.

Si nécessaireCombien de lignes correspondent dans chaque fichier

Exemple

git grep -c cart

Afficher seulement les noms des fichiers qui contiennent une correspondance.

Si nécessaireLister les fichiers qui correspondent, par ex. pour tous les ouvrir

Exemple

git grep -l login

Ne faire correspondre le motif qu’à un mot entier.

Si nécessaireÉviter les correspondances partielles

Exemple

git grep -w i

Choisir la bonne option

git grep vs grep

Pourquoi utiliser la recherche de Git

CommandeCherche dansAnciennes versions
grep -rChaque fichier du disque, y compris node_modulesNo
git grepSeulement les fichiers suivisOui : git grep x <commit>

Exemples

Chercher du texte

git grep "cart"

Chaque ligne de chaque fichier suivi qui contient cart.


Avec les numéros de ligne

git grep -n "cart"

Ajoute le numéro de ligne.


Dans un autre commit

git grep "cart" v1.0

Chercher dans le projet tel qu’il était en v1.0.


Seulement certains fichiers

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

Limiter la recherche aux fichiers JavaScript.

Exemples de workflows

1
git grep -n "count("

Chaque appel avec sa ligne

2
git grep -l "count("

La liste des fichiers à modifier

Dépannage

Aucune sortie, code de sortie 1

Cause : Rien ne correspond

Vérifiez l’orthographe, essayez -i, ou vérifiez que le fichier est suivi

Un fichier que vous venez de créer n’est pas fouillé

Cause : git grep ne cherche que dans les fichiers suivis

Faites git add, ou utilisez git grep --untracked

Astuces et pièges

Bonnes pratiques

  • ✓Activez les numéros de ligne une fois : git config --global grep.lineNumber true.
  • ✓Cherchez dans les anciennes versions avec git grep <pattern> <tag> au lieu de les extraire.

Erreurs fréquentes

  • ✗S’attendre à voir des fichiers non suivis dans les résultats — ajoutez-les d’abord, ou utilisez --untracked.
  • ✗Oublier les guillemets autour des motifs contenant des espaces ou des caractères spéciaux.

FAQ

A:

Oui : basiques par défaut, -E pour étendues, -P pour la syntaxe Perl.

A:

Il cherche dans les arbres que vous nommez ; pour trouver le commit qui a ajouté un texte, utilisez git log -S "text".