Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.45.1 → 2.47.0 no changes
- 2.45.0 04/29/24
- 2.43.1 → 2.44.2 no changes
- 2.43.0 11/20/23
- 2.38.1 → 2.42.3 no changes
- 2.38.0 10/02/22
- 2.32.1 → 2.37.7 no changes
- 2.32.0 06/06/21
- 2.30.1 → 2.31.8 no changes
- 2.30.0 12/27/20
- 2.29.1 → 2.29.3 no changes
- 2.29.0 10/19/20
- 2.27.1 → 2.28.1 no changes
- 2.27.0 06/01/20
- 2.26.1 → 2.26.3 no changes
- 2.26.0 03/22/20
- 2.25.2 → 2.25.5 no changes
- 2.25.1 02/17/20
- 2.24.1 → 2.25.0 no changes
- 2.24.0 11/04/19
- 2.22.1 → 2.23.4 no changes
- 2.22.0 06/07/19
- 2.20.1 → 2.21.4 no changes
- 2.20.0 12/09/18
- 2.19.1 → 2.19.6 no changes
- 2.19.0 09/10/18
- 2.18.1 → 2.18.5 no changes
- 2.18.0 06/21/18
- 2.16.6 → 2.17.6 no changes
- 2.15.4 no changes
- 2.14.6 12/06/19
- 2.13.7 no changes
- 2.12.5 09/22/17
- 2.10.5 → 2.11.4 no changes
- 2.9.5 07/30/17
- 2.8.6 07/30/17
- 2.7.6 no changes
- 2.6.7 05/05/17
- 2.2.3 → 2.5.6 no changes
- 2.1.4 12/17/14
- 2.0.5 12/17/14
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 alsogrep.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. Sepager
não for especificado, será usado o pager padrão (consultecore.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
ouauto
. - --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 andgrep.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é mesmoMAX_PATH
ouPATH_MAX
. -
git grep --all-match -e NODE -e Unexpected
-
Procura por uma linha que tenha
NODE
ouUnexpected
nos arquivos que tenham linhas que coincidam com ambas. -
git grep solução -- :^Documentação
-
Procura por
solução
, excluindo os arquivos emDocumentaçã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 See original version for this content. |
Warning
|
Missing See original version for this content. |
GIT
Parte do conjunto git[1]