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
- 2.45.1 → 2.45.2 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 <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. Ifpager
is unspecified, the default pager will be used (seecore.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é 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
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 See original version for this content. |
Warning | Missing See original version for this content. |
GIT
Parte do conjunto git[1]