| git-grep(1) | |
| =========== | |
| NAME | |
| ---- | |
| git-grep - Print lines matching a pattern | |
| SYNOPSIS | |
| -------- | |
| [verse] | |
| '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] | |
| [-z | --null] | |
| [-c | --count] [--all-match] | |
| [--max-depth <depth>] | |
| [--color | --no-color] | |
| [-A <post-context>] [-B <pre-context>] [-C <context>] | |
| [-f <file>] [-e] <pattern> | |
| [--and|--or|--not|(|)|-e <pattern>...] [<tree>...] | |
| [--] [<path>...] | |
| DESCRIPTION | |
| ----------- | |
| Look for specified patterns in the working tree files, blobs | |
| registered in the index file, or given tree objects. | |
| OPTIONS | |
| ------- | |
| --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. | |
| --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:: | |
| Show colored matches. | |
| --no-color:: | |
| Turn off match highlighting, even when the configuration file | |
| gives the default to color output. | |
| -[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 | |
| linkgit: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. | |
| `<tree>...`:: | |
| Search blobs in the trees for specified patterns. | |
| \--:: | |
| Signals the end of options; the rest of the parameters | |
| are <path> limiters. | |
| Example | |
| ------- | |
| 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. | |
| Author | |
| ------ | |
| Originally written by Linus Torvalds <torvalds@osdl.org>, later | |
| revamped by Junio C Hamano. | |
| Documentation | |
| -------------- | |
| Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |