git grep简介

原文:  http://gitbook.liuhui998.com/4_8.html
使用Git Grep进行搜索

用git grep 命令查找Git库里面的某段文字是很方便的. 当然, 你也可以用unix下的'grep'命令进行搜索, 但是'git grep'命令能让你不用签出(checkout)历史文件, 就能查找它们.

例如, 你要看 git.git 这个仓库里每个使用'xmmap'函数的地方, 你可以运行下面的命令:

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$ git grep xmmap</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">config</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">               contents </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> contents_sz</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">diff</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">         s</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">data </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> s</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">git</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">compat</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">util</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">h</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="kwd" style="color:#0088;line-height:25px;">extern</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">start</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="typ" style="color:#66066;line-height:25px;">size_t</span><span class="pln" style="color:#000000;line-height:25px;"> length</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">int</span><span class="pln" style="color:#000000;line-height:25px;"> prot</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">int</span><span class="pln" style="color:#000000;line-height:25px;"> fla</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">read</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">cache</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">   mmap </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> mmap_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ </span><span class="pun" style="color:#66660;line-height:25px;">|</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_WRITE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">refs</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;"> log_mapped </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> mapsz</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> logfd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">    map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> mapsz</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">    idx_map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> idx_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                    win</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="kwd" style="color:#0088;line-height:25px;">base</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> win</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">len</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                    map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> f</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">            buf </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">wrapper</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">start</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="typ" style="color:#66066;line-height:25px;">size_t</span><span class="pln" style="color:#000000;line-height:25px;"> length</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div>
如果你要显示行号, 你可以添加'-n'选项:

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$</span><span class="pun" style="color:#66660;line-height:25px;">></span><span class="pln" style="color:#000000;line-height:25px;">git grep </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">n xmmap</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">config</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1016</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">          contents </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> contents_sz</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">diff</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1833</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">            s</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">data </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> s</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">git</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">compat</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">util</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">h</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">291</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="kwd" style="color:#0088;line-height:25px;">extern</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">start</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="typ" style="color:#66066;line-height:25px;">size_t</span><span class="pln" style="color:#000000;line-height:25px;"> length</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">int</span><span class="pln" style="color:#000000;line-height:25px;"> prot</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> int</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">read</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">cache</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1178</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">      mmap </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> mmap_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ </span><span class="pun" style="color:#66660;line-height:25px;">|</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_WRITE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">refs</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1345</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">    log_mapped </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> mapsz</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> logfd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">377</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">        map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> mapsz</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">);</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">479</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">        idx_map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> idx_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">780</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                        win</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="kwd" style="color:#0088;line-height:25px;">base</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> win</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">len</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1076</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                       map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PR</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">2393</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">               buf </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">wrapper</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">89</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">start</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="typ" style="color:#66066;line-height:25px;">size_t</span><span class="pln" style="color:#000000;line-height:25px;"> length</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div>
如果我们想只显示文件名, 我们可以使用'--name-onley'选项:

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$</span><span class="pun" style="color:#66660;line-height:25px;">></span><span class="pln" style="color:#000000;line-height:25px;">git grep </span><span class="pun" style="color:#66660;line-height:25px;">--</span><span class="pln" style="color:#000000;line-height:25px;">name</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">only xmmap</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">config</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">diff</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">git</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">compat</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">util</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">h</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">read</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">cache</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">refs</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">wrapper</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span></div>
我们可以用'-c'选项,可以查看每个文件里有多少行匹配内容(line matches):

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$</span><span class="pun" style="color:#66660;line-height:25px;">></span><span class="pln" style="color:#000000;line-height:25px;">git grep </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">c xmmap</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">config</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">diff</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">git</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">compat</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">util</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">h</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">read</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">cache</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">refs</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">sha1</span><span class="pln" style="color:#000000;line-height:25px;">_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">5</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">wrapper</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="lit" style="color:#06666;line-height:25px;">1</span></div>
现在, 如果我们要查找git仓库里某个特定版本里的内容, 我们可以像下面一样在命令行末尾加上标签名(tag reference):

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$ git grep xmmap v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">v1.5</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">config</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                contents </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> st</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">st_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">diff</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">          s</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">data </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> s</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">git</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">compat</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">util</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">h</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="kwd" style="color:#0088;line-height:25px;">static</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">inline</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="kwd" style="color:#0088;line-height:25px;">void</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">*</span><span class="pln" style="color:#000000;line-height:25px;">start</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="typ" style="color:#66066;line-height:25px;">size_t</span><span class="pln" style="color:#000000;line-height:25px;"> length</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">read</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">cache</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                    cache_mmap </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> cache_mmap_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">refs</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">  log_mapped </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> st</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">st_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> logfd</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">     map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> st</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">st_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">     idx_map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> idx_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">                     win</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="kwd" style="color:#0088;line-height:25px;">base</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> win</span><span class="pun" style="color:#66660;line-height:25px;">-></span><span class="pln" style="color:#000000;line-height:25px;">len</span><span class="pun" style="color:#66660;line-height:25px;">,</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">     map </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> st</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">st_size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> </span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">v1</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="lit" style="color:#06666;line-height:25px;">5.0</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">sha1_file</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;">             buf </span><span class="pun" style="color:#66660;line-height:25px;">=</span><span class="pln" style="color:#000000;line-height:25px;"> xmmap</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">NULL</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> size</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> PROT_READ</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> MAP_PRIVATE</span><span class="pun" style="color:#66660;line-height:25px;">,</span><span class="pln" style="color:#000000;line-height:25px;"> fd</span></div>
我可以看到"1.5.0版"和当前版本间一些区别: 在“1.5.0版"中, xmmap没有在wrapper.c中出现.

我们也可以组合一些搜索条件, 下面的命令就是查找我们在仓库的哪个地方定义了'SORT_DIRENT'.

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$ git grep </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e </span><span class="str" style="color:#0880;line-height:25px;">'#define'</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">--</span><span class="kwd" style="color:#0088;line-height:25px;">and</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e SORT_DIRENT</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> SORT_DIRENT </span><span class="lit" style="color:#06666;line-height:25px;">0</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> SORT_DIRENT </span><span class="lit" style="color:#06666;line-height:25px;">1</span></div>
我不但可以进行“与"(both)条件搜索操作,也可以进行"或"(either)条件搜索操作.

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$ git grep </span><span class="pun" style="color:#66660;line-height:25px;">--</span><span class="pln" style="color:#000000;line-height:25px;">all</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">match </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e </span><span class="str" style="color:#0880;line-height:25px;">'#define'</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e SORT_DIRENT</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> REACHABLE </span><span class="lit" style="color:#06666;line-height:25px;">0x0001</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> SEEN      </span><span class="lit" style="color:#06666;line-height:25px;">0x0002</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> ERROR_OBJECT </span><span class="lit" style="color:#06666;line-height:25px;">01</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> ERROR_REACHABLE </span><span class="lit" style="color:#06666;line-height:25px;">02</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> SORT_DIRENT </span><span class="lit" style="color:#06666;line-height:25px;">0</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> DIRENT_SORT_HINT</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">de</span><span class="pun" style="color:#66660;line-height:25px;">)</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">0</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> SORT_DIRENT </span><span class="lit" style="color:#06666;line-height:25px;">1</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> DIRENT_SORT_HINT</span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">de</span><span class="pun" style="color:#66660;line-height:25px;">)</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">((</span><span class="pln" style="color:#000000;line-height:25px;">de</span><span class="pun" style="color:#66660;line-height:25px;">)-></span><span class="pln" style="color:#000000;line-height:25px;">d_ino</span><span class="pun" style="color:#66660;line-height:25px;">)</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MAX_SHA1_ENTRIES </span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="lit" style="color:#06666;line-height:25px;">1024</span><span class="pun" style="color:#66660;line-height:25px;">)</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="kwd" style="color:#0088;line-height:25px;">if</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">SORT_DIRENT</span><span class="pun" style="color:#66660;line-height:25px;">)</span></div>
我们也可以查找出符合一个条件(term)且符合两个条件(terms)之一的文件行. 例如我们要找出名字中含有‘PATH'或是'MAX'的常量定义:

<div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">$ git grep </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e </span><span class="str" style="color:#0880;line-height:25px;">'#define'</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="pun" style="color:#66660;line-height:25px;">--</span><span class="kwd" style="color:#0088;line-height:25px;">and</span><span class="pln" style="color:#000000;line-height:25px;"> \( </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e PATH </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">e MAX \) </span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">abspath</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MAXDEPTH </span><span class="lit" style="color:#06666;line-height:25px;">5</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">blame</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MORE_THAN_ONE_PATH      </span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="lit" style="color:#06666;line-height:25px;">1u</span><span class="pun" style="color:#66660;line-height:25px;"><<</span><span class="lit" style="color:#06666;line-height:25px;">13</span><span class="pun" style="color:#66660;line-height:25px;">)</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">blame</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MAXSG </span><span class="lit" style="color:#06666;line-height:25px;">16</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">describe</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MAX_TAGS     </span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="pln" style="color:#000000;line-height:25px;">FLAG_BITS </span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;"> </span><span class="lit" style="color:#06666;line-height:25px;">1</span><span class="pun" style="color:#66660;line-height:25px;">)</span></div><div style="line-height:25px"><span class="pln" style="color:#000000;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fetch</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">pack</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MAX_IN_VAIN </span><span class="lit" style="color:#06666;line-height:25px;">256</span></div><div style="line-height:25px"><span class="lit" style="color:#06666;line-height:25px;">builtin</span><span class="pun" style="color:#66660;line-height:25px;">-</span><span class="pln" style="color:#000000;line-height:25px;">fsck</span><span class="pun" style="color:#66660;line-height:25px;">.</span><span class="pln" style="color:#000000;line-height:25px;">c</span><span class="pun" style="color:#66660;line-height:25px;">:</span><span class="com" style="color:#8800;line-height:25px;">#define</span><span class="pln" style="color:#000000;line-height:25px;"> MAX_SHA1_ENTRIES </span><span class="pun" style="color:#66660;line-height:25px;">(</span><span class="lit" style="color:#06666;line-height:25px;">1024</span><span class="pun" style="color:#66660;line-height:25px;">)</span></div>
...
译者注: 就是"与"条件搜索和"或"条件搜索可以组合使用.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值