Code

Merge branch 'master' into pb/gitpm
[git.git] / Documentation / git-grep.txt
index 74102b7944fd7153602ea5d9ae0969c150cd945f..dc7683383c3b4dc4c6bede834155ae56132aafc3 100644 (file)
@@ -16,7 +16,7 @@ SYNOPSIS
           [-n] [-l | --files-with-matches] [-L | --files-without-match]
           [-c | --count]
           [-A <post-context>] [-B <pre-context>] [-C <context>]
-          [-f <file>] [-e <pattern>]
+          [-f <file>] [-e] <pattern> [--and|--or|--not|(|)|-e <pattern>...]
           [<tree>...]
           [--] [<path>...]
 
@@ -30,7 +30,7 @@ OPTIONS
 -------
 --cached::
        Instead of searching in the working tree files, check
-       the blobs registerd in the index file.
+       the blobs registered in the index file.
 
 -a | --text::
        Process binary files as if they were text.
@@ -65,20 +65,39 @@ OPTIONS
 -[ABC] <context>::
        Show `context` trailing (`A` -- after), or leading (`B`
        -- before), or both (`C` -- context) lines, and place a
-       line containing `--` between continguous groups of
+       line containing `--` between contiguous groups of
        matches.
 
 -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.
+
 `<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`.
+
 Author
 ------
 Originally written by Linus Torvalds <torvalds@osdl.org>, later