Comment utiliser Grep pour la recherche dans le référentiel GIT

Comment utiliser Grep pour la recherche dans le référentiel GIT
Tout référentiel GIT contient de nombreux fichiers, dossiers, branches, balises, etc. Parfois, il faut rechercher le contenu particulier du référentiel GIT en utilisant un modèle d'expression régulière. La commande 'git grep' est utilisée pour rechercher dans la branche de caisse et les fichiers locaux. Mais si l'utilisateur recherche le contenu dans une branche, mais que le contenu est stocké dans une autre branche du référentiel, alors il n'obtiendra pas la sortie de recherche. Dans ce cas, l'utilisateur doit exécuter la commande «git grep» pour appliquer la recherche dans toutes les branches du référentiel.

Paramètres de configuration de la commande grep:

Les paramètres de commande «git grep» sont utilisés pour configurer cette commande ont mentionné ci-dessous.

Le nom du paramètre But
grep.Type de motif Il est utilisé pour définir le comportement de correspondance par défaut.
grep.nom et prénom Il est défini sur true pour activer l'option -Null-Name par défaut.
grep.colonne Il est défini sur true pour activer l'option-Colonne par défaut.
grep.numéro de ligne Il est défini sur true pour activer l'option -N par défaut.
grep.ExtendRegexp Il est défini sur true pour activer l'option -extended-regexp par défaut. Mais cette option ne fonctionnera pas si le grep. Le type de modèle contient une autre valeur à la place de la valeur par défaut.
grep. threads Il est utilisé pour définir le nombre de fils de travailleur Grep.
grep.FallbacktonOindex S'il est défini sur true, alors le git grep -no-index lorsque le git grep exécuté en dehors d'un référentiel git. La valeur par défaut de ce paramètre est fausse.

Options de la commande grep:

Le 'git grep' La commande propose de nombreuses options pour rechercher le contenu du référentiel de différentes manières. Certaines des options GREP couramment utilisées ont décrit ci-dessous.

Option But
-I, -ignore-case Il est utilisé pour les correspondances insensibles aux cas des modèles et des fichiers.
-je Il est utilisé pour ne pas correspondre au modèle dans les fichiers binaires.
-profondeur max Il est utilisé pour chaque donnée sur la ligne de commande. La valeur de profondeur de -1 n'indique aucune limite. Cette option est ignorée si contient des jokers actifs.
-R,- Il fonctionne comme -max-Depth = -1, et c'est la valeur par défaut.
-sans cerveau Cela fonctionne comme -max-Depth = 0.
-w, -word-regexp Il est utilisé pour faire correspondre le motif qu'à la limite du mot.
-V, -Invert-Match Il est utilisé pour sélectionner les lignes non correspondantes.
-nom et prénom Il est utilisé pour forcer les chemins vers la sortie par rapport au répertoire du projet.
-e Il est utilisé pour les modèles en commençant par - et doit être utilisé avec le grep.
-Et, -ou, -not, (…) Ces options sont utilisées pour définir les multiples modèles de recherche. -ou est l'opérateur par défaut et-et a une priorité plus élevée que-ou.
-E,-étendue-regexp, -g, -basic-regexp Il est utilisé pour les modèles POSIX étendus / regexp de base.
-P, -perl-regexp Il est utilisé pour les modèles d'expression réguliers compatibles perl.
-F, -Trages à fixe Il est utilisé pour les motifs de chaîne fixe.
-F Il est utilisé pour lire les modèles du fichier.
-n, -buil Il est utilisé pour préfixer le numéro de ligne aux lignes correspondantes.
-O, -Unly Matching Il est utilisé pour imprimer uniquement les parties correspondantes (non vides) d'une ligne de correspondance.
-C, -Count Il est utilisé pour montrer le nombre de lignes qui correspondent.
-casser Il est utilisé pour imprimer une ligne vide entre les correspondances à partir des différents fichiers.
-aider Il est utilisé pour afficher toutes les options disponibles avec la description de la commande grep.

Activer la configuration GREP:

Avant d'exécuter la commande «git grep» de ce tutoriel, exécutez la commande suivante pour activer -regexp prolongé et -n Options de la commande grep.

$ git config --global grep.ExtendRegexp True
$ git config --global grep.Livre de line

Utilisation de la commande grep pour la recherche:

Un référentiel local nommé librairie a été utilisé dans ce tutoriel pour vérifier la sortie de la commande grep pour la recherche de contenu dans le référentiel. Le référentiel contient deux fichiers. Ceux-ci sont liste de livres.php et booktype.php.

Exécutez la commande suivante pour rechercher le mot 'Type de livre' Dans les fichiers du référentiel.

$ git grep 'type de livre' $ (git rev-list -all)

La sortie suivante montre que le mot 'Type de livre' existe dans ligne 1 de la booktype.php déposer.

Exécutez la commande suivante pour rechercher les lignes des fichiers de référentiel avec les valeurs SHA commises qui contiennent 'huer' Au début des fichiers. Ici, le -i L'option a été utilisée pour la recherche insensible à la casse.

$ git grep -i 'boo *' $ (git rev-list - all)

La sortie suivante montre que 'huer' contient deux fichiers à la ligne numéro 1, mais l'entrée pour le liste de livres.php Le fichier est apparu deux fois pour deux commits.

Le modèle a été recherché dans le contenu du fichier de référentiel dans les commandes précédentes. Exécutez la commande suivante pour rechercher le contenu du fichier particulier.

$ git grep -f 'booktype.php.'

La sortie suivante montre que le booktype.php Le fichier existe dans le référentiel actuel et le fichier contient une seule ligne.

Exécutez la commande suivante pour rechercher le modèle, «réserver» dans le contenu des fichiers de référentiel. Ici, l'option -e a utilisé pour la correspondance des motifs.

$ git grep -e 'livre'

La sortie suivante montre que les deux liste de livres.php et booktype.php Les fichiers contiennent le mot 'Livre' à la ligne numéro 1.

Exécutez la commande suivante pour rechercher plusieurs modèles à l'intérieur du contenu des fichiers de référentiel. Ici, l'option -e a utilisée pour la correspondance de motifs regex, et le tuyau (|) fonctionne comme logique ou. Les fichiers qui contiennent le mot 'Livre' ou 'auteur' sera affiché après avoir exécuté la commande suivante.

$ git grep -e 'livre * | Auteur.'

La sortie suivante montre que le mot 'auteur' existe deux fois dans le autorine.php fichier, et le mot 'Livre' existe une fois dans le liste de livres.php et booktype.php déposer.

Conclusion:

Le 'git grep' est une commande utile pour rechercher le contenu spécifique dans le référentiel git. La recherche peut être effectuée de différentes manières en utilisant les différentes options de cette commande. Les utilisations de certaines options ont été décrites dans ce tutoriel en utilisant un référentiel de démonstration.