Git
Français ▾ Topics ▾ Latest version ▾ git-grep last updated in 2.45.0

NOM

git-grep - Imprime les lignes correspondant à un motif

SYNOPSIS

git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp]
	   [-v | --invert-match] [-h|-H] [--full-name]
	   [-E | --extended-regexp] [-G | --basic-regexp]
	   [-P | --perl-regexp]
	   [-F | --fixed-strings] [-n | --line-number] [--column]
	   [-l | --files-with-matches] [-L | --files-without-match]
	   [(-O | --open-files-in-pager) [<pageur>]]
	   [-z | --null]
	   [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]
	   [--max-depth <profondeur>] [--[no-]recursive]
	   [--color[=<quand>] | --no-color]
	   [--break] [--heading] [-p | --show-function]
	   [-A <post-contexte>] [-B <pre-contexte>] [-C <contexte>]
	   [-W | --function-context]
	   [(-m | --max-count) <num>]
	   [--threads <num>]
	   [-f <file>] [-e] <motif>
	   [--and|--or|--not|(|)|-e <motif>…​]
	   [--recurse-submodules] [--parent-basename <nom-de-base>]
	   [ [--[no-]exclude-standard] [--cached | --untracked |--no-index] | <arbre>…​]
	   [--] [<spéc-de-chemin>…​]

DESCRIPTION

Recherche les motifs spécifiés dans les fichiers suivis de l’arbre de travail, les blobs enregistrés dans le fichier d’index, ou les blobs dans des objets donnés de l’arbre. Les motifs sont des listes d’une ou plusieurs expressions de recherche séparées par des caractères de nouvelle ligne. Une chaîne vide comme expression de recherche correspond à toutes les lignes.

OPTIONS

--cached

Au lieu de rechercher les fichiers suivis dans l’arbre de travail, rechercher les blobs enregistrés dans le fichier d’index.

--untracked

En plus de rechercher dans les fichiers suivis dans l’arbre de travail, rechercher aussi dans les fichiers non-suivis.

--no-index

Recherche les fichiers dans le répertoire actuel qui n’est pas géré par Git, ou en ignorant que le répertoire actuel est géré par Git. Cela ressemble plutôt à l’exécution de l’utilitaire régulier grep(1) avec son option -r spécifiée, mais avec quelques avantages supplémentaires, tels que l’utilisation de motifs de spécificateurs de chemins pour limiter les chemins ; voir l’entrée spécificateurs de chemin dans gitglossary[7] pour plus d’informations.

Cette option ne peut être utilisée avec --cached ou --untracked. Voir aussi grep.fallbackToNoIndex dans CONFIGURATION ci-dessous.

--no-exclude-standard

Rechercher également dans les fichiers ignorés en n’honorant pas le mécanisme .gitignore. Seulement utile avec --untracked.

--exclude-standard

Ne pas prêter attention aux fichiers ignorés spécifiés via le mécanisme .gitignore. Seulement utile lors de la recherche de fichiers dans le répertoire actuel avec --no-index.

--recurse-submodules

Rechercher récursivement dans chaque sous-module qui est actif et extrait dans l’arbre de travail. Lorsqu’il est utilisé en combinaison avec l’option <arbre>, le préfixe de toutes les sorties de sous-modules sera le nom de l’objet <arbre> du projet parent. Cette option ne peut pas être utilisée avec --untracked et n’a aucun effet si --no-index est donné.

-a
--text

Traiter les fichiers binaires comme s’il s’agissait de texte.

--textconv

Honorer les paramètres du filtre textconv.

--no-textconv

Ne pas respecter les paramètres du filtre textconv. C’est la valeur par défaut.

-i
--ignore-case

Ignorer les différences de casse entre les modèles et les fichiers.

-I

Ne pas chercher les motifs dans les fichiers binaires.

--max-depth <profondeur>

Pour chaque <spéc-de-chemin> donné sur la ligne de commande, descend au maximum <profondeur> niveaux de répertoires. Une valeur de -1 signifie qu’il n’y a pas de limite. Cette option est ignorée si <spéc-de-chemin> contient des caractères génériques actifs. En d’autres termes, si "a*" correspond à un répertoire nommé "a*", "*" correspond littéralement, donc --max-depth est toujours efficace.

-r
--recursive

Identique à --max-depth=-1 ; c’est la valeur par défaut.

--no-recursive

Identique à --max-depth=0.

-w
--word-regexp

Appliquer le motif uniquement à la limite du mot (ou commencer au début d’une ligne, ou précédé d’un caractère non-mot ; finir à la fin d’une ligne ou suivre un caractère non-mot).

-v
--invert-match

Sélectionner les lignes qui ne correspondent pas.

-h
-H

Par défaut, la commande affiche le nom du fichier pour chaque correspondance. L’option -h est utilisée pour supprimer cette sortie. -H est indiqué pour être complet et ne fait rien d’autre que d’écraser -h donné plus tôt sur la ligne de commande.

--full-name

Lorsqu’elle est exécutée à partir d’un sous-répertoire, la commande produit généralement des chemins relatifs au répertoire actuel. Cette option force l’affichage des chemins relatifs au répertoire principal du projet.

-E
--extended-regexp
-G
--basic-regexp

Utiliser les expressions rationnelles étendues/de base POSIX pour les motifs. La valeur par défaut est d’utiliser une expression rationnelle de base.

-P
--perl-regexp

Utiliser des expressions rationnelles compatibles avec Perl pour les motifs.

La prise en charge de ces types d’expressions régulières est une dépendance optionnelle à la compilation. Si Git n’a pas été compilé avec ce support et que cette option est activée, la commande se termine immédiatement.

-F
--fixed-strings

Utiliser des chaînes fixes pour les motifs (ne pas interpréter le motif comme une regex).

-n
--line-number

Préfixer le numéro de la ligne aux lignes de correspondances.

--column

Préfixer le décalage d’octet indexé à 1 de la première correspondance à partir du début de la ligne de correspondance.

-l
--files-with-matches
--name-only
-L
--files-without-match

Au lieu de montrer toutes les lignes de correspondances, ne montrer que les noms des fichiers qui contiennent (ou ne contiennent pas) des correspondances. Pour une meilleure compatibilité avec git diff, --name-only est un synonyme de --files-with-matches.

-O[<pageur>]
--open-files-in-pager[=<pageur>]

Ouvrir les fichiers correspondants dans le pageur (pas la sortie de grep). Si le pageur est "less" ou "vi", et que l’utilisateur n’a spécifié qu’un seul motif, le premier fichier est positionné automatiquement à la première correspondance. L’argument <pageur> est optionnel ; s’il est spécifié, il doit être collé à l’option sans espace. Si <pageur> n’est pas spécifié, le pageur par défaut sera utilisé (voir core.pager dans git-config[1]).

-z
--null

Utiliser \ 0 comme délimiteur pour les noms de chemin dans la sortie et les afficher verbatim. Sans cette option, les noms de chemin avec des caractères « inhabituels » sont cités comme expliqué pour la variable de configuration` core.quotePath` (voir git-config[1]).

-o
--only-matching

Afficher seulement les parties correspondantes (non vides) d’une ligne correspondante, avec chacune de ces parties sur une ligne de sortie séparée.

-c
--count

Au lieu d’afficher toutes les lignes correspondantes, afficher le nombre de lignes qui correspondent.

--color[=<quand>]

Afficher les correspondances colorées. La valeur doit être always (toujfours, valeur par défaut), never (jamais), ou auto.

--no-color

Désactiver la coloration des correspondances, même lorsque le fichier de configuration donne la sortie en couleur par défaut. Même chose que --color=never.

--break

Imprimer une ligne vide entre les correspondances de fichiers différents.

--heading

Afficher le nom du fichier au-dessus des correspondances dans ce fichier au lieu du début de chaque ligne affichée.

-p
--show-function

Afficher la ligne précédente qui contient le nom de fonction de la correspondance, à moins que la ligne correspondante soit elle-même un nom de fonction. Le nom est déterminé de la même manière que git diff traite les en-têtes de rustine (voir Définir un entête de section personnalisé in gitattributes[5]).

-<num>
-C <num>
--context <num>

Afficher <num> lignes de contexte avant et après chaque correspondance, et placer une ligne contenant -- entre des groupes contigus de correspondances.

-A <num>
--after-context <num>

Afficher <num> de lignes de contexte après, et placer une ligne contenant -- entre des groupes contigus de correspondances.

-B <num>
--before-context <num>

Afficher <num> lignes de contexte avant, et placer une ligne contenant -- entre des groupes contigus de correspondances.

-W
--function-context

Afficher le texte environnant depuis la ligne précédente contenant un nom de fonction jusqu’à celle qui précède le nom de fonction suivant, affichant effectivement la fonction entière dans laquelle la correspondance a été trouvée. Les noms de fonctions sont déterminés de la même manière que git diff traite les en-têtes de rustines (voir Définir un entête de section personnalisé dans gitattributes[5]).

-m <num>
--max-count <nombre>

Limiter le nombre de correspondances par fichier. En utilisant l’option -v ou --invert-match, la recherche s’arrête après le nombre spécifié de non-correspondances. Une valeur de -1 retournera des résultats illimités (par défaut). Une valeur de 0 quittera immédiatement avec un statut non nul.

--threads <num>

Nombre de fils de travail de grep à utiliser. Voir NOTES SUR LES FILS et grep.threads dans CONFIGURATION pour plus d’informations.

-f <fichier>

Lire les motifs depuis <fichier>, un par ligne.

Le passage du motif via <fichier> permet de fournir un motif de recherche contenant un \0.

Tous les types de motifs ne prennent pas en charge les motifs contenant \0. Git sortira en erreur si un type de motif donné ne peut pas prendre en charge un tel motif. Le type de motif --perl-regexp prend en charge le plus grand nombre de motifs de ce genre lorsqu’il est utilise le moteur PCRE v2.

Dans les versions de Git antérieures à 2.23.0, les motifs contenant \0 étaient silencieusement considérés comme fixes. Cela n’a jamais été documenté, il y avait aussi des interactions bizarres et non documentées entre, par exemple, les motifs non-ASCII contenant \0 et --ignore-case.

Dans les prochaines versions, Git apprendra peut-être à prendre en charge les motifs contenant des \0 pour un plus grand nombre de moteurs de recherche. En attendant, Git se termine lorsque le type de motif en question ne les prend pas en charge.

-e

Le paramètre suivant est le motif. Cette option doit être utilisée pour les motifs commençant par - et devrait être utilisée dans les scripts passant l’entrée utilisateur à grep. Si plusieurs motifs sont fournis, ils sont combinés par ou.

--and
--or
--not
( …​ )

Spécifier la façon dont les motifs multiples sont combinés en utilisant des expressions booléennes. --or est l’opérateur par défaut. --and a une priorité plus élevée que --or. -e doit être utilisé pour tous les motifs.

--all-match

Lorsque vous donnez plusieurs expressions de motifs combinées avec --or, ce drapeau est spécifié pour limiter la correspondance aux fichiers qui ont des lignes correspondant à toutes ces expressions.

-q
--quiet

Ne pas afficher les lignes correspondantes ; à la place, sortir avec le statut 0 quand il y a une correspondance et avec un statut non nul quand il n’y en a pas.

<arbre>…​

Au lieu de rechercher les fichiers suivis dans l’arbre de travail, rechercher les blobs enregistrés dans les arbres fournis.

--

Signale la fin des options ; le reste des paramètres sont des limiteurs <spéc-de-chemin>.

<spécificateur de chemin>…​

Si donné, limiter la recherche aux chemins correspondant à au moins un motif. Les motifs de correspondance des chemins principaux et les motifs glob(7) sont tous deux pris en charge.

Pour de plus amples détails sur la syntaxe <spécificateur de chemin>, référez-vous à la section pathspec dans gitglossary[7].

EXEMPLES

git grep 'time_t' -- '*.[ch]'

Recherche time_t dans tous les fichiers suivis .c et .h dans le répertoire de travail et ses sous-répertoires.

git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)

Recherche une ligne contenant #define et MAX_PATH ou PATH_MAX.

git grep --all-match -e NODE -e Unexpected

Recherche une ligne qui contient NODE ou Unexpected dans les fichiers qui ont des lignes qui correspondent aux deux.

git grep solution -- :^Documentation

Recherche solution, en excluant les fichiers de la Documentation.

NOTES SUR LES FILS

L’option --threads (et la configuration de grep.threads) sera ignorée quand --open-files-in-pager est utilisé, forçant une exécution à un seul thread.

Lors de l’exploration du magasin d’objets (avec --cached ou en donnant des objets arbre), l’exécution avec plusieurs threads peut être plus lente qu’avec un seul thread si --textconv est donné et qu’il y a trop de conversions de texte. Donc, si vous avez de faibles performances dans ce cas, il peut être souhaitable d’utiliser --threads=1.

CONFIGURATION

Warning

Missing fr/includes/cmd-config-section-all.txt

See original version for this content.

Warning

Missing fr/config/grep.txt

See original version for this content.

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .

scroll-to-top