git-grep(1)
===========

NAME
----
git-grep - print lines matching a pattern


SYNOPSIS
--------
'git-grep' [<option>...] [-e] <pattern> [--] [<path>...]

DESCRIPTION
-----------
Searches list of files `git-ls-files` produces for lines
containing a match to the given pattern.


OPTIONS
-------
`--`::
	Signals the end of options; the rest of the parameters
	are <path> limiters.

<option>...::
	Either an option to pass to `grep` or `git-ls-files`.

	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=*`.

	All other options will be passed to `grep`.

<pattern>::
	The pattern to look for.  The first non option is taken
	as the pattern; if your pattern begins with a dash, use
	`-e <pattern>`.

<path>...::
	Optional paths to limit the set of files to be searched;
	passed to `git-ls-files`.


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

