Dans le post précédent j’ai parlé des commandes linux patch
et diff
. des fonctionnalités ou on utiliserait plutôt Git. Ici je vais faire le contraire : utiliser git sans utiliser les commandes linux. Je vais parler de git grep
.
git grep
l’utilisation est très simple
1
|
|
On peut utiliser une regex
le résultat s’affiche dans un pager (sous linux c’est souvent less
).
Rappel des touches sur Less
Touche | Description |
---|---|
g |
début du fichier |
G |
fin du fichier |
/mot |
cherche mot . n pour suivant N pour précédent |
&mot |
seulement le mot |
git grep
utilise un peu près les mêmes options que le grep
.
par exemple
1
|
|
-n
numérote les lignes-C 5
affiche un contexte de 5 lignes
A noter que git grep n’utilise que les fichiers dans le dépôt qui sont déjà indexé. Donc il est plutôt rapide (alors qu’un grep devrait faire tous les répertoires).
Git grep et l’historique
Mais la vrai force de git grep est de pouvoir chercher sur toute les branches !
1
|
|
D’ailleurs si vous voulez savoir qui a commité a ajouté un bug qui contient le mot “Panda”
1
|
|
Il y a des alternatives
1 2 |
|
Git grep et tig
Depuis la version 2 de tig (pas encore dans les dépots au moment ou j’écris ces lignes)
il suffit d’appuyer sur g
de faire la recherche.
Les différentes commandes
e
ouvrir dans l’éditeurb
ouvre la vue blameEnter
permet de se déplacer dans le fichiers.
Git grep et vim
- Il est dispo dans le plugin Fugitive.
Conclusion
L’intégration dans tig me plait beaucoup, j’ai beaucoup tapé le commande suivante pour faire mes recherches.
1
|
|
Je me suis forcé à lire un peu la documentation de git grep, et je ne le regrette pas.
Enfin il existe des alternative à grep
comme ack ou plus récemment the silver searcher. Je vais essayer d’en parler plus tard.