原文:
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>
...
译者注: 就是"与"条件搜索和"或"条件搜索可以组合使用.