git-grep − Print lines matching a pattern
git−grep [−−cached]
[−a | −−text] [−I] [−i | −−ignore−case] [−w | −−word−regexp]
[−v | −−invert−match] [−h|−H] [−−full−name]
[−E | −−extended−regexp] [−G | −−basic−regexp]
[−F | −−fixed−strings] [−n]
[−l | −−files−with−matches] [−L | −−files−without−match]
[−c | −−count] [−−all−match]
[−A <post−context>] [−B <pre−context>] [−C <context>]
[−f <file>] [−e] <pattern>
[−−and|−−or|−−not|(|)|−e <pattern>...] [<tree>...]
[−−] [<path>...]
Look for specified patterns in the working tree files, blobs registered in the index file, or given tree objects.
−−cached
Instead of searching in the working tree files, check the blobs registered in the index file.
−a, −−text
Process binary files as if they were text.
−i, −−ignore−case
Ignore case differences between the patterns and the files.
−I
Don´t match the pattern in binary files.
−w, −−word−regexp
Match the pattern only at word boundary (either begin at the beginning of a line, or preceded by a non−word character; end at the end of a line or followed by a non−word character).
−v, −−invert−match
Select non−matching lines.
−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.
−F, −−fixed−strings
Use fixed strings for patterns (don´t interpret pattern as a regex).
−n
Prefix the line number to matching lines.
−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.
−c, −−count
Instead of showing every matched line, show the number of lines that match.
−[ABC] <context>
Show context trailing (A — after), or leading (B — before), or both (C — context) lines, and place a line containing −− between contiguous groups of matches.
−<num>
A shortcut for specifying −C<num>.
−f <file>
Read patterns from <file>, one per line.
−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
When giving multiple pattern expressions combined with −−or, this flag is specified to limit the match to files that have lines to match all of them.
<tree>...
Search blobs in the trees for specified patterns.
−−
Signals the end of options; the rest of the parameters are <path> limiters.
git grep −e ´#define´ −−and \( −e MAX_PATH −e PATH_MAX \)
Looks for a line that has #define and either MAX_PATH or PATH_MAX.
git grep −−all−match −e NODE −e Unexpected
Looks for a line that has NODE or Unexpected in files that have lines that match both.
Originally written by Linus Torvalds <torvalds@osdl.org[1]>, later revamped by Junio C Hamano.
Documentation by Junio C Hamano and the git−list <git@vger.kernel.org[2]>.
Part of the git(1) suite
1. |
torvalds AT osdl DOT org |
mailto:torvalds AT osdl DOT org
2. |
git AT vger DOT kernel DOT org |
mailto:git AT vger DOT kernel DOT org