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 <depth>] [--[no-]recursive]
	   [--color[=<when>] | --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 <file>] [-e] <pattern>
	   [--and|--or|--not|(|)|-e <pattern>…​]
	   [--recurse-submodules] [--parent-basename <basename>]
	   [ [--[no-]exclude-standard] [--cached | --untracked | --no-index] | <tree>…​]
	   [--] [<pathspec>…​]

DESCRIÇÃO

Procure padrões especificados nos arquivos rastreados na árvore de trabalho, bolhas registradas no arquivo do índice ou bolhas em determinados objetos da árvore. Os padrões são listas de uma ou mais expressões de pesquisa separadas por caracteres de nova linha. Uma string vazia como expressão de pesquisa corresponde a todas as linhas.

OPÇÕES

--cached

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

--untracked

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

--no-index

Search files in the current directory that is not managed by Git, or by ignoring that the current directory is managed by Git. This is rather similar to running the regular grep(1) utility with its -r option specified, but with some additional benefits, such as using pathspec patterns to limit paths; see the pathspec entry in gitglossary[7] for more information.

This option cannot be used together with --cached or --untracked. See also grep.fallbackToNoIndex in CONFIGURATION below.

--no-exclude-standard

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

--exclude-standard

Não repare nos arquivos ignorados definidos em .gitignore. Útil apenas ao pesquisar pelos arquivos no diretório atual com a opção --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 cannot be used together with --untracked, and it has no effect if --no-index is specified.

-a
--text

Processe os arquivos binários como se fossem texto.

--textconv

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

--no-textconv

Não honre com as configurações do filtro "textconv". Esta é a predefinição.

-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>

Para cada <pathspec> fornecido na linha de comando, desça no máximo <profundidade> níveis de diretórios. O valor -1 significa nenhum limite. Esta opção será ignorada se <pathspec> contiver curingas. Em outras palavras, se "a*" corresponder a um diretório chamado "a*", "*" será correspondido literalmente, de modo que --max-depth ainda será eficaz.

-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

É predefinido que o comando mostre o nome do arquivo para cada correspondência. A opção -h é usada para suprimir essa saída. O -H está lá para ser completo e não faz nada, exceto substituir o -h fornecido anteriormente na linha de comando.

--full-name

Quando executado num subdiretório, o comando geralmente gera caminhos relativos ao diretório atual. Esta opção impõem os caminhos que serão gerados em relação ao diretório principal do projeto.

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

Use o regexp estendido/básico POSIX para os padrões. A predefinição é usar o regexp básico.

-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

Em vez de mostrar todas as linhas correspondentes, mostre apenas os nomes dos arquivos que contêm (ou não contêm) correspondências. Para melhor compatibilidade com o comando git diff, --name-only é um sinônimo de --files-with-matches.

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

Abra os arquivos correspondentes no pager (não a saída do grep). Se o paginador for "less" ou "vi" e o usuário tiver especificado apenas um padrão, o primeiro arquivo será posicionado automaticamente na primeira correspondência. O argumento pager é opcional; se for especificado, deverá ser anexado à opção sem espaço. Se pager não for especificado, será usado o pager padrão (consulte core.pager do comando git-config[1]).

-z
--null

Use \0 as the delimiter for pathnames in the output, and print them verbatim. Without this option, pathnames with "unusual" characters are quoted as explained for the configuration variable core.quotePath (see 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>]

Mostra as correspondências coloridas. O valor sempre deve ser always (a predefinição), never ou auto.

--no-color

Desativar o realce de correspondência, mesmo quando o arquivo de configuração dá como padrão a saída colorida. O mesmo que --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

Mostra a linha anterior que contém o nome da função correspondente, a menos que a linha correspondente seja um nome de função em si. O nome é determinado da mesma forma que o comando git diff trabalha com os cabeçalhos de hunk de correção (consulte Definindo um cabeçalho de hunk personalizado do comando 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 NOTES ON THREADS and 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

O próximo parâmetro é o padrão. Esta opção deve ser usada para padrões que começam com - e deve ser usada em scripts que passam a entrada do usuário para o grep. Vários padrões são combinados por or.

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

Especifique como vários padrões são combinados usando expressões booleanas. O --or é o operador padrão. O --and tem precedência maior que --or. O -e deve ser usado em todos os padrões.

--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>…​

Se usado, limitará a pesquisa a caminhos que correspondam a pelo menos um padrão. Ambos são compatíveis os padrões de correspondência de caminhos principais e glob(7).

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

The --threads option (and the grep.threads configuration) will be ignored when --open-files-in-pager is used, forcing a single-threaded execution.

When grepping the object store (with --cached or giving tree objects), running with multiple threads might perform slower than single-threaded if --textconv is given and there are too many text conversions. Thus, if low performance is experienced in this case, it might be desirable to use --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