1git-grep(1) 2=========== 3 4NAME 5---- 6git-grep - Print lines matching a pattern 7 8 9SYNOPSIS 10-------- 11[verse] 12'git grep' [--cached] 13 [-a | --text] [-I] [-i | --ignore-case] [-w | --word-regexp] 14 [-v | --invert-match] [-h|-H] [--full-name] 15 [-E | --extended-regexp] [-G | --basic-regexp] 16 [-F | --fixed-strings] [-n] 17 [-l | --files-with-matches] [-L | --files-without-match] 18 [-z | --null] 19 [-c | --count] [--all-match] 20 [-A <post-context>] [-B <pre-context>] [-C <context>] 21 [-f <file>] [-e] <pattern> 22 [--and|--or|--not|(|)|-e <pattern>...] [<tree>...] 23 [--] [<path>...] 24 25DESCRIPTION 26----------- 27Look for specified patterns in the working tree files, blobs 28registered in the index file, or given tree objects. 29 30 31OPTIONS 32------- 33--cached:: 34 Instead of searching in the working tree files, check 35 the blobs registered in the index file. 36 37-a:: 38--text:: 39 Process binary files as if they were text. 40 41-i:: 42--ignore-case:: 43 Ignore case differences between the patterns and the 44 files. 45 46-I:: 47 Don't match the pattern in binary files. 48 49-w:: 50--word-regexp:: 51 Match the pattern only at word boundary (either begin at the 52 beginning of a line, or preceded by a non-word character; end at 53 the end of a line or followed by a non-word character). 54 55-v:: 56--invert-match:: 57 Select non-matching lines. 58 59-h:: 60-H:: 61 By default, the command shows the filename for each 62 match. `-h` option is used to suppress this output. 63 `-H` is there for completeness and does not do anything 64 except it overrides `-h` given earlier on the command 65 line. 66 67--full-name:: 68 When run from a subdirectory, the command usually 69 outputs paths relative to the current directory. This 70 option forces paths to be output relative to the project 71 top directory. 72 73-E:: 74--extended-regexp:: 75-G:: 76--basic-regexp:: 77 Use POSIX extended/basic regexp for patterns. Default 78 is to use basic regexp. 79 80-F:: 81--fixed-strings:: 82 Use fixed strings for patterns (don't interpret pattern 83 as a regex). 84 85-n:: 86 Prefix the line number to matching lines. 87 88-l:: 89--files-with-matches:: 90--name-only:: 91-L:: 92--files-without-match:: 93 Instead of showing every matched line, show only the 94 names of files that contain (or do not contain) matches. 95 For better compatibility with 'git-diff', --name-only is a 96 synonym for --files-with-matches. 97 98-z:: 99--null:: 100 Output \0 instead of the character that normally follows a 101 file name. 102 103-c:: 104--count:: 105 Instead of showing every matched line, show the number of 106 lines that match. 107 108-[ABC] <context>:: 109 Show `context` trailing (`A` -- after), or leading (`B` 110 -- before), or both (`C` -- context) lines, and place a 111 line containing `--` between contiguous groups of 112 matches. 113 114-<num>:: 115 A shortcut for specifying -C<num>. 116 117-f <file>:: 118 Read patterns from <file>, one per line. 119 120-e:: 121 The next parameter is the pattern. This option has to be 122 used for patterns starting with - and should be used in 123 scripts passing user input to grep. Multiple patterns are 124 combined by 'or'. 125 126--and:: 127--or:: 128--not:: 129( ... ):: 130 Specify how multiple patterns are combined using Boolean 131 expressions. `--or` is the default operator. `--and` has 132 higher precedence than `--or`. `-e` has to be used for all 133 patterns. 134 135--all-match:: 136 When giving multiple pattern expressions combined with `--or`, 137 this flag is specified to limit the match to files that 138 have lines to match all of them. 139 140`<tree>...`:: 141 Search blobs in the trees for specified patterns. 142 143\--:: 144 Signals the end of options; the rest of the parameters 145 are <path> limiters. 146 147 148Example 149------- 150 151git grep -e \'#define\' --and \( -e MAX_PATH -e PATH_MAX \):: 152 Looks for a line that has `#define` and either `MAX_PATH` or 153 `PATH_MAX`. 154 155git grep --all-match -e NODE -e Unexpected:: 156 Looks for a line that has `NODE` or `Unexpected` in 157 files that have lines that match both. 158 159Author 160------ 161Originally written by Linus Torvalds <torvalds@osdl.org>, later 162revamped by Junio C Hamano. 163 164 165Documentation 166-------------- 167Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. 168 169GIT 170--- 171Part of the linkgit:git[1] suite