.TP
\-a|\-\-all
-Update all paths in the index file\&. This flag notices files that have been modified and deleted, but new files you have not told about git are not affected\&.
+Update all paths in the index file\&. This flag notices files that have been modified and deleted, but new files you have not told git about are not affected\&.
.TP
\-c or \-C <commit>
.SH "SYNOPSIS"
-git\-grep [<option>...] <pattern> [<path>...]
+git\-grep [<option>...] [\-e] <pattern> [\-\-] [<path>...]
.SH "DESCRIPTION"
.SH "OPTIONS"
.TP
+\-\-
+Signals the end of options; the rest of the parameters are <path> limiters\&.
+
+.TP
<option>...
-Either an option to pass to grep or git\-ls\-files\&. Some grep options, such as \-C and \-m, that take parameters are known to git\-grep\&.
+Either an option to pass to grep or git\-ls\-files\&.
+
+.nf
+The following are the specific `git\-ls\-files` options
+that may be given: `\-o`, `\-\-cached`, `\-\-deleted`, `\-\-others`,
+`\-\-killed`, `\-\-ignored`, `\-\-modified`, `\-\-exclude=*`,
+`\-\-exclude\-from=*`, and `\-\-exclude\-per\-directory=*`\&.
+.fi
+
+.nf
+All other options will be passed to `grep`\&.
+.fi
.TP
<pattern>
-The pattern to look for\&.
+The pattern to look for\&. The first non option is taken as the pattern; if your pattern begins with a dash, use \-e <pattern>\&.
.TP
<path>...
Show stage files in the output
.TP
+\-\-directory
+If a whole directory is classified as "other", show just its name (with a trailing slash) and not its whole contents\&.
+
+.TP
\-u|\-\-unmerged
Show unmerged files in the output (forces \-\-stage)
and resets the tip of the branch to that commit\&.
.TP
Interrupted workflow
-You can get interrupted by an ungent fix request while you are still in the middle of a large change\&. The files in your working tree are not in any shape to be committed yet, but you need to get to the other branch for a quick bugfix\&.
+Suppose you are interrupted by an urgent fix request while you are in the middle of a large change\&. The files in your working tree are not in any shape to be committed yet, but you need to get to the other branch for a quick bugfix\&.
.IP
$ git checkout feature ;# you were working in "feature" branch and
$ git reset
This commit will get blown away so a throw\-away log message is OK\&.
- This removes the 'WIP' commit from the commit history, and makes
- your working tree in the state just before you made that snapshot\&.
+ This removes the 'WIP' commit from the commit history, and sets
+ your working tree to the state just before you made that snapshot\&.
After , the index file still has all the WIP changes you
committed in \&. This sets it to the last commit you were
basing the WIP changes on\&.
Imports a SVN repository into git\&. It will either create a new repository, or incrementally import into an existing one\&.
-SVN access is done by the SVN
-
-
-Perl module\&.
+SVN access is done by the SVN::Perl module\&.
git\-svnimport assumes that SVN repositories are organized into one "trunk" directory where the main development happens, "branch/FOO" directories for branches, and "/tags/FOO" directories for tags\&. Other subdirectories are ignored\&.
Specify a maximum revision number to pull\&.
.nf
-Formerly, this option controlled how many revisions to pull, due to
-SVN memory leaks\&. (These have been worked around\&.)
+Formerly, this option controlled how many revisions to pull,
+due to SVN memory leaks\&. (These have been worked around\&.)
.fi
.TP
If you're using the "\-d" or "\-D" option, this is the URL of the SVN repository itself; it usually ends in "/svn"\&.
.TP
-<SVN_repository_URL>
-The URL of the SVN module you want to import\&. For local repositories, use "file:///absolute/path"\&.
-
-
-<path> The path to the module you want to check out\&.
+<path>
+The path to the module you want to check out\&.
.TP
\-h