git grep

Depuração

Procura texto nos arquivos rastreados


O comando 'git grep' procura nos arquivos que o Git rastreia e imprime cada linha correspondente com o nome do arquivo. É mais rápido que um grep comum em projetos grandes, ignora arquivos não rastreados e ignorados (como node_modules) e pode procurar em qualquer commit ou branch sem fazer checkout.

Sinopse

git grep [<options>] <pattern> [<tree>...] [--] [<pathspec>...]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Opções

Clique em uma opção para expandir

Iniciante (5)

Coloca o número da linha antes de cada correspondência.

RecomendadoIr direto à linha encontrada

Exemplo

git grep -n cart

Ignora diferenças entre maiúsculas e minúsculas.

RecomendadoAchar uma palavra seja qual for a capitalização

Exemplo

git grep -i welcome

Mostra o número de linhas correspondentes por arquivo em vez das linhas.

Quando necessárioQuantas linhas batem em cada arquivo

Exemplo

git grep -c cart

Mostra só os nomes dos arquivos que têm correspondência.

Quando necessárioListar quais arquivos batem, por ex. para abrir todos

Exemplo

git grep -l login

Faz o padrão corresponder só a palavras inteiras.

Quando necessárioEvitar resultados de palavras parciais

Exemplo

git grep -w i

Escolhendo a opção certa

git grep vs grep

Por que usar a busca do próprio Git

ComandoProcura emVersões antigas
grep -rTodo arquivo no disco, inclusive node_modulesNo
git grepSó arquivos rastreadosSim: git grep x <commit>

Exemplos

Procurar texto

git grep "cart"

Cada linha de cada arquivo rastreado que contém cart.


Com números de linha

git grep -n "cart"

Adiciona o número da linha.


Em outro commit

git grep "cart" v1.0

Procura no projeto como era na v1.0.


Só alguns arquivos

git grep "TODO" -- "*.js"

Limita a busca a arquivos JavaScript.

Exemplos de fluxos de trabalho

1
git grep -n "count("

Cada chamada com sua linha

2
git grep -l "count("

A lista de arquivos a editar

Solução de problemas

Sem saída, código de saída 1

Causa: Nada correspondeu

Confira a grafia, tente -i, ou verifique se o arquivo é rastreado

Um arquivo que você acabou de criar não é pesquisado

Causa: git grep só procura em arquivos rastreados

Faça git add, ou use git grep --untracked

Dicas e armadilhas

Boas práticas

  • ✓Ative os números de linha uma vez: git config --global grep.lineNumber true.
  • ✓Procure em versões antigas com git grep <pattern> <tag> em vez de fazer checkout delas.

Erros comuns

  • ✗Esperar arquivos não rastreados nos resultados — adicione-os antes, ou use --untracked.
  • ✗Esquecer as aspas em padrões com espaços ou caracteres especiais.

Perguntas frequentes

A:

Sim: básicas por padrão, -E para estendidas, -P para sintaxe Perl.

A:

Procura nas árvores que você indicar; para achar o commit que adicionou um texto, use git log -S "text".