How to use git grep
to search only tracked files, or tracked and new files, etc.
$ 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.
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.
Search a subdirectory:
$ git grep -il torvalds -- scripts/ scripts/checkstack.pl scripts/get_maintainer.pl scripts/package/mkdebian $