blob: 81ee2468fb77b68ad334b34ddc2db3020bfaf4ce [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.5.2" />
<title>git-grep(1)</title>
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
/*
border: 1px solid red;
*/
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
tt {
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
div.sectionbody {
font-family: serif;
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
pre {
padding: 0;
margin: 0;
}
span#author {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
font-family: sans-serif;
}
div#footer {
font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
div#footer-text {
float: left;
padding-bottom: 0.5em;
}
div#footer-badges {
float: right;
padding-bottom: 0.5em;
}
div#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #dddddd;
color: #777777;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > div.content {
white-space: pre;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-family: sans-serif;
font-weight: bold;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
@media print {
div#footer-badges { display: none; }
}
div#toc {
margin-bottom: 2.5em;
}
div#toctitle {
color: #527bbd;
font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
h2 {
border-style: none;
}
div.sectionbody {
margin-left: 5%;
}
@media print {
div#toc { display: none; }
}
/* Workarounds for IE6's broken and incomplete CSS2. */
div.sidebar-content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.sidebar-title, div.image-title {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
margin-top: 0.0em;
margin-bottom: 0.5em;
}
div.listingblock div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock-attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock-content {
white-space: pre;
}
div.verseblock-attribution {
padding-top: 0.75em;
text-align: left;
}
div.exampleblock-content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
/* IE6 sets dynamically generated links as visited. */
div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
window.onload = function(){asciidoc.footnotes();}
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
var cont = document.getElementById("content");
var noteholder = document.getElementById("footnotes");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
}
}
/*]]>*/
</script>
</head>
<body>
<div id="header">
<h1>
git-grep(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>git-grep -
Print lines matching a pattern
</p>
</div>
</div>
<div id="content">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<div class="verseblock-content"><em>git grep</em> [-a | --text] [-I] [-i | --ignore-case] [-w | --word-regexp]
[-v | --invert-match] [-h|-H] [--full-name]
[-E | --extended-regexp] [-G | --basic-regexp]
[-P | --perl-regexp]
[-F | --fixed-strings] [-n | --line-number]
[-l | --files-with-matches] [-L | --files-without-match]
[(-O | --open-files-in-pager) [&lt;pager&gt;]]
[-z | --null]
[-c | --count] [--all-match] [-q | --quiet]
[--max-depth &lt;depth&gt;]
[--color[=&lt;when&gt;] | --no-color]
[-A &lt;post-context&gt;] [-B &lt;pre-context&gt;] [-C &lt;context&gt;]
[-f &lt;file&gt;] [-e] &lt;pattern&gt;
[--and|--or|--not|(|)|-e &lt;pattern&gt;&#8230;]
[ [--exclude-standard] [--cached | --no-index | --untracked] | &lt;tree&gt;&#8230;]
[--] [&lt;pathspec&gt;&#8230;]</div>
<div class="verseblock-attribution">
</div></div>
</div>
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>Look for specified patterns in the tracked files in the work tree, blobs
registered in the index file, or blobs in given tree objects.</p></div>
</div>
<h2 id="_configuration">CONFIGURATION</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
grep.lineNumber
</dt>
<dd>
<p>
If set to true, enable <em>-n</em> option by default.
</p>
</dd>
<dt class="hdlist1">
grep.extendedRegexp
</dt>
<dd>
<p>
If set to true, enable <em>--extended-regexp</em> option by default.
</p>
</dd>
</dl></div>
</div>
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
--cached
</dt>
<dd>
<p>
Instead of searching tracked files in the working tree, search
blobs registered in the index file.
</p>
</dd>
<dt class="hdlist1">
--no-index
</dt>
<dd>
<p>
Search files in the current directory that is not managed by git.
</p>
</dd>
<dt class="hdlist1">
--untracked
</dt>
<dd>
<p>
In addition to searching in the tracked files in the working
tree, search also in untracked files.
</p>
</dd>
<dt class="hdlist1">
--no-exclude-standard
</dt>
<dd>
<p>
Also search in ignored files by not honoring the <tt>.gitignore</tt>
mechanism. Only useful with <tt>--untracked</tt>.
</p>
</dd>
<dt class="hdlist1">
--exclude-standard
</dt>
<dd>
<p>
Do not pay attention to ignored files specified via the <tt>.gitignore</tt>
mechanism. Only useful when searching files in the current directory
with <tt>--no-index</tt>.
</p>
</dd>
<dt class="hdlist1">
-a
</dt>
<dt class="hdlist1">
--text
</dt>
<dd>
<p>
Process binary files as if they were text.
</p>
</dd>
<dt class="hdlist1">
-i
</dt>
<dt class="hdlist1">
--ignore-case
</dt>
<dd>
<p>
Ignore case differences between the patterns and the
files.
</p>
</dd>
<dt class="hdlist1">
-I
</dt>
<dd>
<p>
Don&#8217;t match the pattern in binary files.
</p>
</dd>
<dt class="hdlist1">
--max-depth &lt;depth&gt;
</dt>
<dd>
<p>
For each &lt;pathspec&gt; given on command line, descend at most &lt;depth&gt;
levels of directories. A negative value means no limit.
</p>
</dd>
<dt class="hdlist1">
-w
</dt>
<dt class="hdlist1">
--word-regexp
</dt>
<dd>
<p>
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).
</p>
</dd>
<dt class="hdlist1">
-v
</dt>
<dt class="hdlist1">
--invert-match
</dt>
<dd>
<p>
Select non-matching lines.
</p>
</dd>
<dt class="hdlist1">
-h
</dt>
<dt class="hdlist1">
-H
</dt>
<dd>
<p>
By default, the command shows the filename for each
match. <tt>-h</tt> option is used to suppress this output.
<tt>-H</tt> is there for completeness and does not do anything
except it overrides <tt>-h</tt> given earlier on the command
line.
</p>
</dd>
<dt class="hdlist1">
--full-name
</dt>
<dd>
<p>
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.
</p>
</dd>
<dt class="hdlist1">
-E
</dt>
<dt class="hdlist1">
--extended-regexp
</dt>
<dt class="hdlist1">
-G
</dt>
<dt class="hdlist1">
--basic-regexp
</dt>
<dd>
<p>
Use POSIX extended/basic regexp for patterns. Default
is to use basic regexp.
</p>
</dd>
<dt class="hdlist1">
-P
</dt>
<dt class="hdlist1">
--perl-regexp
</dt>
<dd>
<p>
Use Perl-compatible regexp for patterns. Requires libpcre to be
compiled in.
</p>
</dd>
<dt class="hdlist1">
-F
</dt>
<dt class="hdlist1">
--fixed-strings
</dt>
<dd>
<p>
Use fixed strings for patterns (don&#8217;t interpret pattern
as a regex).
</p>
</dd>
<dt class="hdlist1">
-n
</dt>
<dt class="hdlist1">
--line-number
</dt>
<dd>
<p>
Prefix the line number to matching lines.
</p>
</dd>
<dt class="hdlist1">
-l
</dt>
<dt class="hdlist1">
--files-with-matches
</dt>
<dt class="hdlist1">
--name-only
</dt>
<dt class="hdlist1">
-L
</dt>
<dt class="hdlist1">
--files-without-match
</dt>
<dd>
<p>
Instead of showing every matched line, show only the
names of files that contain (or do not contain) matches.
For better compatibility with <em>git diff</em>, <tt>--name-only</tt> is a
synonym for <tt>--files-with-matches</tt>.
</p>
</dd>
<dt class="hdlist1">
-O [&lt;pager&gt;]
</dt>
<dt class="hdlist1">
--open-files-in-pager [&lt;pager&gt;]
</dt>
<dd>
<p>
Open the matching files in the pager (not the output of <em>grep</em>).
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.
</p>
</dd>
<dt class="hdlist1">
-z
</dt>
<dt class="hdlist1">
--null
</dt>
<dd>
<p>
Output \0 instead of the character that normally follows a
file name.
</p>
</dd>
<dt class="hdlist1">
-c
</dt>
<dt class="hdlist1">
--count
</dt>
<dd>
<p>
Instead of showing every matched line, show the number of
lines that match.
</p>
</dd>
<dt class="hdlist1">
--color[=&lt;when&gt;]
</dt>
<dd>
<p>
Show colored matches.
The value must be always (the default), never, or auto.
</p>
</dd>
<dt class="hdlist1">
--no-color
</dt>
<dd>
<p>
Turn off match highlighting, even when the configuration file
gives the default to color output.
Same as <tt>--color=never</tt>.
</p>
</dd>
<dt class="hdlist1">
--break
</dt>
<dd>
<p>
Print an empty line between matches from different files.
</p>
</dd>
<dt class="hdlist1">
--heading
</dt>
<dd>
<p>
Show the filename above the matches in that file instead of
at the start of each shown line.
</p>
</dd>
<dt class="hdlist1">
-p
</dt>
<dt class="hdlist1">
--show-function
</dt>
<dd>
<p>
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 <em>git diff</em> works out
patch hunk headers (see <em>Defining a custom hunk-header</em> in
<a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
-&lt;num&gt;
</dt>
<dt class="hdlist1">
-C &lt;num&gt;
</dt>
<dt class="hdlist1">
--context &lt;num&gt;
</dt>
<dd>
<p>
Show &lt;num&gt; leading and trailing lines, and place a line
containing <tt>--</tt> between contiguous groups of matches.
</p>
</dd>
<dt class="hdlist1">
-A &lt;num&gt;
</dt>
<dt class="hdlist1">
--after-context &lt;num&gt;
</dt>
<dd>
<p>
Show &lt;num&gt; trailing lines, and place a line containing
<tt>--</tt> between contiguous groups of matches.
</p>
</dd>
<dt class="hdlist1">
-B &lt;num&gt;
</dt>
<dt class="hdlist1">
--before-context &lt;num&gt;
</dt>
<dd>
<p>
Show &lt;num&gt; leading lines, and place a line containing
<tt>--</tt> between contiguous groups of matches.
</p>
</dd>
<dt class="hdlist1">
-W
</dt>
<dt class="hdlist1">
--function-context
</dt>
<dd>
<p>
Show the surrounding text from the previous line containing a
function name up to the one before the next function name,
effectively showing the whole function in which the match was
found.
</p>
</dd>
<dt class="hdlist1">
-f &lt;file&gt;
</dt>
<dd>
<p>
Read patterns from &lt;file&gt;, one per line.
</p>
</dd>
<dt class="hdlist1">
-e
</dt>
<dd>
<p>
The next parameter is the pattern. This option has to be
used for patterns starting with <tt>-</tt> and should be used in
scripts passing user input to grep. Multiple patterns are
combined by <em>or</em>.
</p>
</dd>
<dt class="hdlist1">
--and
</dt>
<dt class="hdlist1">
--or
</dt>
<dt class="hdlist1">
--not
</dt>
<dt class="hdlist1">
( &#8230; )
</dt>
<dd>
<p>
Specify how multiple patterns are combined using Boolean
expressions. <tt>--or</tt> is the default operator. <tt>--and</tt> has
higher precedence than <tt>--or</tt>. <tt>-e</tt> has to be used for all
patterns.
</p>
</dd>
<dt class="hdlist1">
--all-match
</dt>
<dd>
<p>
When giving multiple pattern expressions combined with <tt>--or</tt>,
this flag is specified to limit the match to files that
have lines to match all of them.
</p>
</dd>
<dt class="hdlist1">
-q
</dt>
<dt class="hdlist1">
--quiet
</dt>
<dd>
<p>
Do not output matched lines; instead, exit with status 0 when
there is a match and with non-zero status when there isn&#8217;t.
</p>
</dd>
<dt class="hdlist1">
&lt;tree&gt;&#8230;
</dt>
<dd>
<p>
Instead of searching tracked files in the working tree, search
blobs in the given trees.
</p>
</dd>
<dt class="hdlist1">
--
</dt>
<dd>
<p>
Signals the end of options; the rest of the parameters
are &lt;pathspec&gt; limiters.
</p>
</dd>
<dt class="hdlist1">
&lt;pathspec&gt;&#8230;
</dt>
<dd>
<p>
If given, limit the search to paths matching at least one pattern.
Both leading paths match and glob(7) patterns are supported.
</p>
</dd>
</dl></div>
</div>
<h2 id="_examples">Examples</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
<tt>git grep &#39;time_t&#39; -- &#39;*.[ch]&#39;</tt>
</dt>
<dd>
<p>
Looks for <tt>time_t</tt> in all tracked .c and .h files in the working
directory and its subdirectories.
</p>
</dd>
<dt class="hdlist1">
<tt>git grep -e &#39;#define&#39; --and \( -e MAX_PATH -e PATH_MAX \)</tt>
</dt>
<dd>
<p>
Looks for a line that has <tt>#define</tt> and either <tt>MAX_PATH</tt> or
<tt>PATH_MAX</tt>.
</p>
</dd>
<dt class="hdlist1">
<tt>git grep --all-match -e NODE -e Unexpected</tt>
</dt>
<dd>
<p>
Looks for a line that has <tt>NODE</tt> or <tt>Unexpected</tt> in
files that have lines that match both.
</p>
</dd>
</dl></div>
</div>
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2011-11-15 13:45:02 PDT
</div>
</div>
</body>
</html>