Git
Português (Brasil) ▾Topics ▾Latest version ▾ git-grep last updated in 2.45.0

NOME

git-grep - Imprima linhas que coincidam com um padrão

RESUMO

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) [<pager>]]
	   [-z | --null]
	   [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]
	   [--max-depth <profundidade>] [--[no-]recursive]
	   [--color[=<quando>] | --no-color]
	   [--break] [--heading] [-p | --show-function]
	   [-A <post-context>] [-B <pre-context>] [-C <context>]
	   [-W | --function-context]
	   [(-m | --max-count) <num>]
	   [--threads <num>]
	   [-f <arquivo>] [-e] <padrão>
	   [--and|--or|--not|(|)|-e <padrão>…​]
	   [--recurse-submodules] [--parent-basename <basename>]
	   [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <árvore>…​]
	   [--] [<pathspec>…​]

DESCRIÇÃO

Look for specified patterns in the tracked files in the work tree, blobs registered in the index file, or blobs in given tree objects. Patterns are lists of one or more search expressions separated by newline characters. An empty string as search expression matches all lines.

OPÇÕES

--cached

Em vez de procurar por arquivos rastreados na árvore de trabalho, pesquisar por bolhas registradas no índice do arquivo.

--no-index

Localize os arquivos no diretório atual que não sejam gerenciados pelo Git.

--untracked

Além de localizar nos arquivos rastreados da árvore de trabalho, localize também nos arquivos não rastreados.

--no-exclude-standard

Localize também nos arquivos ignorados, ignorando o mecanismo .gitignore. Útil apenas com a opção --untracked.

--exclude-standard

Do not pay attention to ignored files specified via the .gitignore mechanism. Only useful when searching files in the current directory with --no-index.

--recurse-submodules

Recursively search in each submodule that is active and checked out in the repository. When used in combination with the <tree> option the prefix of all submodule output will be the name of the parent project’s <tree> object. This option has no effect if --no-index is given.

-a
--text

Processe os arquivos binários como se fossem texto.

--textconv

Honre com as configurações do filtro "textconv".

--no-textconv

Do not honor textconv filter settings. This is the default.

-i
--ignore-case

Ignore as diferenças entre maiúsculas e minúsculas entre os padrões e os arquivos.

-I

Não coincida padrões em arquivos binários.

--max-depth <profundidade>

For each <pathspec> given on command line, descend at most <depth> levels of directories. A value of -1 means no limit. This option is ignored if <pathspec> contains active wildcards. In other words if "a*" matches a directory named "a*", "*" is matched literally so --max-depth is still effective.

-r
--recursive

O mesmo que --max-depth=-1; Esta é a predefinição.

--no-recursive

O mesmo que --max-depth=0.

-w
--word-regexp

Coincida com o padrão apenas no limite da palavra (inicie no início de uma linha ou preceda um caractere que não seja uma palavra; termine no final de uma linha ou seguido por um caractere que não seja uma palavra).

-v
--invert-match

Selecione as linhas que não coincidam.

-h
-H

By default, the command shows the filename for each match. -h option is used to suppress this output. -H is there for completeness and does not do anything except it overrides -h given earlier on the command line.

--full-name

When run from a subdirectory, the command usually outputs paths relative to the current directory. This option forces paths to be output relative to the project top directory.

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

Use POSIX extended/basic regexp for patterns. Default is to use basic regexp.

-P
--perl-regexp

Para os padrões, utilize expressões regulares compatíveis com o Perl.

A compatibilidade para estes tipos de expressões regulares é uma dependência opcional no momento da compilação. Caso o Git não tenha sido compilado com este suporte, o Git será encerrado caso esta opção seja utilizada.

-F
--fixed-strings

Utilize uma cadeia de caracteres fixos para os padrões (não interprete o padrão como uma expressão regular "regex").

-n
--line-number

Prefixe o número da linha às linhas coincidentes.

--column

Prefixe o deslocamento do byte (byte-offset) indexado em 1 da primeira coincidência desde o início da linha coincidente.

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

Instead of showing every matched line, show only the names of files that contain (or do not contain) matches. For better compatibility with git diff, --name-only is a synonym for --files-with-matches.

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

Open the matching files in the pager (not the output of grep). If the pager happens to be "less" or "vi", and the user specified only one pattern, the first file is positioned at the first match automatically. The pager argument is optional; if specified, it must be stuck to the option without a space. If pager is unspecified, the default pager will be used (see core.pager in git-config[1]).

-z
--null

Use \0 como um delimitador para os nomes do caminho na saída, e as imprima literalmente. Sem esta opção, os nomes do caminho com caracteres "incomuns" são citados como explicado na variável de configuração core.quotePath (consulte git-config[1]).

-o
--only-matching

Imprima apenas as partes que coincidam (não vazias) de uma linha coincidente com cada uma dessas partes numa linha separada na saída.

-c
--count

Em vez de exibir todas as linhas coincidentes, exiba a quantidade de linhas coincidentes.

--color[=<quando>]

Show colored matches. The value must be always (the default), never, or auto.

--no-color

Turn off match highlighting, even when the configuration file gives the default to color output. Same as --color=never.

--break

Imprima uma linha vazia entre as coincidências dos diferentes arquivos.

--heading

Exiba o nome do arquivo acima das coincidências nesse arquivo em vez de exibir no início de cada linha.

-p
--show-function

Show the preceding line that contains the function name of the match, unless the matching line is a function name itself. The name is determined in the same way as git diff works out patch hunk headers (see Defining a custom hunk-header in gitattributes[5]).

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

Exiba um <num> (quantidade) de linhas iniciais e finais, coloque uma linha contendo -- entre os grupos contínuos coincidentes.

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

Exibe <num> (quantidade) de linhas finais e coloque uma linha contendo -- entre os grupos contínuos coincidentes.

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

Exibe <num> (quantidade) de linhas iniciais e coloque uma linha contendo -- entre os grupos contínuos coincidentes.

-W
--function-context

Exibe o texto ao redor a partir da linha anterior contendo o nome da função até uma antes do nome da próxima função, exibindo de forma efetiva a função completa onde uma correspondência tenha sido encontrada. O nome da função é determinada da mesma maneira que o comando git diff lida com os pedaços dos cabeçalhos do patch (consulte Definindo um cabeçalho personalizado do hunk em gitattributes[5]).

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

Limita a quantidade de correspondências por arquivo. Ao usar a opção -v ou --invert-match, a pesquisa para depois que uma quantidade determinada de não correspondências seja atingida. O valor -1 retornará resultados ilimitados (o padrão). Já o valor 0 encerrará imediatamente com um status diferente de zero.

--threads <num>

Number of grep worker threads to use. See grep.threads in CONFIGURATION for more information.

-f <arquivo>

Leia os padrões vindos de um <arquivo>, um por linha.

A passagem do padrão através do <arquivo> permite o provimento de um padrão de pesquisa contendo um \0.

Nem todos os tipos de padrões suportam padrões contendo \0. O Git irá exibir um erro caso um determinado tipo de padrão não tiver compatibilidade com ele. O tipo do padrão --perl-regexp quando compilado contra a estrutura do PCRE v2 tem uma compatibilidade mais ampla para esses tipos de padrões.

Nas versões do Git anteriores à 2.23.0, os padrões contendo \0 seriam silenciosamente considerados corrigidos. Isso nunca foi documentado, também houve interações ímpares e não documentadas entre, por exemplo, os padrões não ASCII contendo \0 e --ignore-case.

Em futuras versões, podemos aprender a oferecer suporte aos padrões contendo \0 para mais estruturas de pesquisa, até então morreremos quando o tipo do padrão em questão não mais os suportar.

-e

The next parameter is the pattern. This option has to be used for patterns starting with - and should be used in scripts passing user input to grep. Multiple patterns are combined by or.

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

Specify how multiple patterns are combined using Boolean expressions. --or is the default operator. --and has higher precedence than --or. -e has to be used for all patterns.

--all-match

Ao utilizar múltiplas expressões de padrões combinadas com --or, este flag é utilizado para limitar a coincidência nos arquivos que possuam linhas que coincidam com todas elas.

-q
--quiet

Não produza linhas coincidentes; em vez disso, encerre com uma condição 0 quando houver uma coincidência e diferente de 0 quando não houver.

<árvore>…​

Em vez de localizar os arquivos rastreados na árvore de trabalho, localize as bolhas nas árvores informadas.

--

Sinaliza o fim das opções; o restante dos parâmetros são os limitadores do <pathspec>.

<pathspec>…​

If given, limit the search to paths matching at least one pattern. Both leading paths match and glob(7) patterns are supported.

Para mais detalhes sobre a sintaxe <pathspec>, consulte a entrada pathspec em gitglossary[7].

EXEMPLOS

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

Procura por time_t em todos os arquivos rastreados .c e .h no diretório de trabalho e em seus subdiretórios.

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

Procura por uma linha que contenha #define e até mesmo MAX_PATH ou PATH_MAX.

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

Procura por uma linha que tenha NODE ou Unexpected nos arquivos que tenham linhas que coincidam com ambas.

git grep solução -- :^Documentação

Procura por solução, excluindo os arquivos em Documentação.

NOTAS SOBRE OS ENCADEAMENTOS

A opção --threads (e a configuração grep.threads) serão ignoradas quando a opção --open-files-in-pager for utilizado, impondo uma execução com thread único.

Ao fazer um grep em um objeto armazenado (com a opção --cached ou oferecendo três objetos), a execução com várias threads poderá ser mais lenta do que uma thread única caso --textconv seja informado e haja muitas conversões de texto. Portanto, caso esteja com baixo desempenho, pode ser desejável utilizar --threads=1.

CONFIGURAÇÃO

Warning

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

See original version for this content.

Warning

Missing pt_BR/config/grep.txt

See original version for this content.

GIT

Parte do conjunto git[1]

scroll-to-top