|
git-grep − Print lines matching a pattern |
git grep [−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]
[−z | −−null]
[−c | −−count] [−−all−match] [−q | −−quiet]
[−−max−depth <depth>]
[−−color[=<when>] | −−no−color]
[−A <post−context>] [−B <pre−context>] [−C <context>]
[−f <file>] [−e] <pattern>
[−−and|−−or|−−not|(|)|−e <pattern>...]
[−−cached | −−no−index | <tree>...]
[−−] [<pathspec>...]
|
|
Look for specified patterns in the tracked files in the work tree, blobs registered in the index file, or blobs in given tree objects. |
|
−−cached |
|
Instead of searching tracked files in the working tree, search blobs registered in the index file. |
|
−−no−index |
|
Search files in the current directory, not just those tracked by git. |
|
−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. |
|
−−max−depth <depth> |
|
For each <pathspec> given on command line, descend at most <depth> levels of directories. A negative value means no limit. |
|
−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. |
|
−z, −−null |
|
Output \0 instead of the character that normally follows a file name. |
|
−c, −−count |
|
Instead of showing every matched line, show the number of lines that match. |
|
−−color[=<when>] |
|
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. |
|
−[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>. |
|
−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)). |
|
−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. |
|
−q, −−quiet |
|
Do not output matched lines; instead, exit with status 0 when there is a match and with non−zero status when there isn’t. |
|
<tree>... |
|
Instead of searching tracked files in the working tree, search blobs in the given trees. |
|
−− |
|
Signals the end of options; the rest of the parameters are <pathspec> limiters. |
|
<pathspec>... |
|
If given, limit the search to paths matching at least one pattern. Both leading paths match and glob(7) patterns are supported. |
|
git grep time_t — *.[ch] |
|
Looks for time_t in all tracked .c and .h files in the working directory and its subdirectories. |
|
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@osdl.org |
|
mailto:torvalds@osdl.org |
|
2. |
git@vger.kernel.org |
|
mailto:git@vger.kernel.org |