User Tools

Site Tools


git_grep

Overview

How to use git grep to search only tracked files, or tracked and new files, etc.

SYNOPSIS

$ 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]
  [-l | --files-with-matches] [-L | --files-without-match]
  [(-O | --open-files-in-pager) [<pager>]]
  [-z | --null]
  [-c | --count] [--all-match] [-q | --quiet]
  [--max-depth <depth>]
  [--color[=<when>] | --no-color]
  [--break] [--heading] [-p | --show-function]
  [-A <post-context>] [-B <pre-context>] [-C <context>]
  [-W | --function-context]
  [--threads <num>]
  [-f <file>] [-e] <pattern>
  [--and|--or|--not|(|)|-e <pattern>...]
  [--recurse-submodules] [--parent-basename <basename>]
  [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...]
  [--] [<pathspec>...]

NOTE: If you don't specify a <pathspec> to search, it (apparently) defaults to the current working directory – this is not obvious from the man page.

Config options

  • grep.lineNumber
  • grep.patternType
  • grep.extendedRegexp
  • grep.threads
  • grep.fullName
  • grep.fallbackToNoIndex

In addition to many standard grep options:

--cached
    Instead of searching tracked files in the working tree, search
    blobs registered in the index file.

--untracked
    In addition to searching in the tracked files in the working
    tree, search also in untracked files.

--no-exclude-standard
    Also search in ignored files by not honoring the .gitignore
    mechanism. Only useful with --untracked.

Examples

Search a subdirectory:

$ git grep -il torvalds -- scripts/
scripts/checkstack.pl
scripts/get_maintainer.pl
scripts/package/mkdebian
$
git_grep.txt · Last modified: 2018/05/27 13:30 by rpjday