Home Explore Blog CI



git

2nd chunk of `Documentation/git-grep.adoc`
a6dfbc88fb02a3752b65a33c4961a8838ea516d004ea5aa10000000100000fa1
	This is the default.

-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 value of -1 means no limit.
	This option is ignored if <pathspec> contains active wildcards.
	In other words if "a*" matches a directory named "a*",
	"*" is matched literally so --max-depth is still effective.

-r::
--recursive::
	Same as `--max-depth=-1`; this is the default.

--no-recursive::
	Same as `--max-depth=0`.

-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.

-P::
--perl-regexp::
	Use Perl-compatible regular expressions for patterns.
+
Support for these types of regular expressions is an optional
compile-time dependency. If Git wasn't compiled with support for them
providing this option will cause it to die.

-F::
--fixed-strings::
	Use fixed strings for patterns (don't interpret pattern
	as a regex).

-n::
--line-number::
	Prefix the line number to matching lines.

--column::
	Prefix the 1-indexed byte-offset of the first match from the start of the
	matching line.

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

-O[<pager>]::
--open-files-in-pager[=<pager>]::
	Open the matching files in the pager (not the output of 'grep').
	If the pager happens to be "less" or "vi", and the user
	specified only one pattern, the first file is positioned at
	the first match automatically. The `pager` argument is
	optional; if specified, it must be stuck to the option
	without a space. If `pager` is unspecified, the default pager
	will be used (see `core.pager` in linkgit:git-config[1]).

-z::
--null::
	Use \0 as the delimiter for pathnames in the output, and print
	them verbatim. Without this option, pathnames with "unusual"
	characters are quoted as explained for the configuration
	variable `core.quotePath` (see linkgit:git-config[1]).

-o::
--only-matching::
	Print only the matched (non-empty) parts of a matching line, with each such
	part on a separate output line.

-c::
--count::
	Instead of showing every matched line, show the number of
	lines that match.

--color[=<when>]::
	Show colored matches.
	The value must be always (the default), never, or auto.

--no-color::
	Turn off match highlighting, even when the configuration file
	gives the default to color output.
	Same as `--color=never`.

--break::
	Print an empty line between matches from different files.

--heading::
	Show the filename above the matches in that file instead of
	at the start of each shown line.

-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]).

-<num>::
-C <num>::
--context <num>::
	Show <num> leading and trailing lines, and place a line
	containing `--` between

Title: Git Grep Options
Summary
The git-grep command offers various options to customize the search, including ignoring case, searching in binary files, limiting search depth, and formatting output, as well as options for highlighting matches, showing file names, and displaying context lines.