mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
1 line
17 KiB
HTML
1 line
17 KiB
HTML
<div class="c-markdown doc-markdown"><div class="doc-postil"><div class="c-markdown"><h2>命名</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>git-grep - 打印符合模式的行</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>概要</h2></div></div><div class="doc-postil"><div class="c-markdown"><pre><code class="language-Bash">git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp] [-v | --invert-match] [-h|-H] [--full-name] [-E | --extended-regexp] [-G | --basic-regexp] [-P | --perl-regexp] [-F | --fixed-strings] [-n | --line-number] [-l | --files-with-matches] [-L | --files-without-match] [(-O | --open-files-in-pager) [<pager>]] [-z | --null] [-c | --count] [--all-match] [-q | --quiet] [--max-depth <depth>] [--color[=<when>] | --no-color] [--break] [--heading] [-p | --show-function] [-A <post-context>] [-B <pre-context>] [-C <context>] [-W | --function-context] [--threads <num>] [-f <file>] [-e] <pattern> [--and|--or|--not|(|)|-e <pattern>…] [--recurse-submodules] [--parent-basename <basename>] [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>…] [--] [<pathspec>…]</code></pre></div></div><div class="doc-postil"><div class="c-markdown"><h2>描述</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>在工作树中跟踪文件中查找指定的模式,在索引文件中注册的斑点或给定树对象中的斑点。模式是由换行符分隔的一个或多个搜索表达式的列表。作为搜索表达式的空字符串与所有行匹配。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>组态</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>grep.lineNumber</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置为 true ,则<code>-n</code>默认启用选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>grep.patternType</p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置默认的匹配行为。使用值<code>basic</code>,<code>extended</code>,<code>fixed</code>,或<code>perl</code>将启用<code>--basic-regexp</code>,<code>--extended-regexp</code>,<code>--fixed-strings</code>,或<code>--perl-regexp</code>相应的选项,而值<code>default</code>将返回到默认匹配行为。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>grep.extendedRegexp</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置为 true,则<code>--extended-regexp</code>默认启用选项。当该<code>grep.patternType</code>选项设置为非时,该选项将被忽略<code>default</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>grep.threads</p></div></div><div class="doc-postil"><div class="c-markdown"><p>要使用的 grep 工作线程数。如果未设置(或设置为0),则默认使用8个线程(现在)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>grep.fullName</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置为 true ,则<code>--full-name</code>默认启用选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>grep.fallbackToNoIndex</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置为 true ,则回退到 git grep --no-index,如果 git grep 在 git 存储库之外执行。默认为 false 。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>选项</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>--cached</p></div></div><div class="doc-postil"><div class="c-markdown"><p>搜索工作树中的追踪文件,而不是搜索索引文件中注册的斑点。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-index</p></div></div><div class="doc-postil"><div class="c-markdown"><p>搜索当前目录中不受 Git 管理的文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--untracked</p></div></div><div class="doc-postil"><div class="c-markdown"><p>除了在工作树中跟踪文件中搜索外,还可以在未跟踪文件中搜索。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-exclude-standard</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通过不尊重<code>.gitignore</code>机制来搜索被忽略的文件。只用于<code>--untracked</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--exclude-standard</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要关注通过<code>.gitignore</code>机制指定的忽略文件。仅在使用当前目录搜索文件时有用<code>--no-index</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--recurse-submodules</p></div></div><div class="doc-postil"><div class="c-markdown"><p>递归搜索已在存储库中初始化并检出的每个子模块。当与 <tree> 选项结合使用时,所有子模块输出的前缀将是父项目的 <tree> 对象的名称。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--parent-basename <basename></p></div></div><div class="doc-postil"><div class="c-markdown"><p>仅限内部使用。为了使用 --recurse-submodules 选项产生统一的输出,可以使用此选项将父级的 <tree> 对象的基名称提供给子模块,以便子模块可以将其输出与父级名称相加,而不是使用 SHA1 子模块。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-a --text</p></div></div><div class="doc-postil"><div class="c-markdown"><p>像处理文本一样处理二进制文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--textconv</p></div></div><div class="doc-postil"><div class="c-markdown"><p>尊重 textconv 过滤器设置。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-textconv</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要兑现 textconv 过滤器设置。这是默认设置。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-i --ignore-case</p></div></div><div class="doc-postil"><div class="c-markdown"><p>忽略模式和文件之间的大小写区别。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-I</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不匹配二进制文件中的模式。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--max-depth <depth></p></div></div><div class="doc-postil"><div class="c-markdown"><p>对于命令行中给出的每个 <pathspec> ,最多下降 <depth> 级别的目录。负值意味着没有限制。如果 <pathspec> 包含活动通配符,则忽略此选项。换句话说,如果 “a *” 匹配名为 “a *” 的目录,则“*”的字面匹配如此 - max-depth 仍然有效。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-w --word-regexp</p></div></div><div class="doc-postil"><div class="c-markdown"><p>仅在字边界处匹配模式(或者从一行的开始处开始,或者以非单词字符开头;结束于一行的末尾或后面跟着一个非单词字符)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-v --invert-match</p></div></div><div class="doc-postil"><div class="c-markdown"><p>选择不匹配的行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-h -H</p></div></div><div class="doc-postil"><div class="c-markdown"><p>默认情况下,该命令显示每个匹配的文件名。<code>-h</code>选项用于抑制此输出。<code>-H</code>是否有完整性,除了<code>-h</code>在命令行中早先给出的覆盖之外,不会执行任何操作。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--full-name</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从子目录运行时,该命令通常会输出相对于当前目录的路径。该选项强制相对于项目顶部目录输出路径。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-E --extended-regexp -G --basic-regexp</p></div></div><div class="doc-postil"><div class="c-markdown"><p>对于模式使用 POSIX 扩展/基本正则表达式。默认是使用基本的正则表达式。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-P --perl-regexp</p></div></div><div class="doc-postil"><div class="c-markdown"><p>为模式使用 Perl 兼容的正则表达式。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>对这些类型的正则表达式的支持是可选的编译时间依赖性。如果 Git 没有编译支持它们,提供这个选项会导致它失效。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-F --fixed-strings</p></div></div><div class="doc-postil"><div class="c-markdown"><p>使用固定字符串模式(不要将模式解释为正则表达式)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-n --line-number</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在行号前加上匹配的行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-l --files-with-matches --name-only -L --files-without-match</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不显示每条匹配的行,只显示包含(或不包含)匹配的文件的名称。为了更好的兼容性<code>git diff</code>,<code>--name-only</code>是一个同义词<code>--files-with-matches</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-O<pager> --open-files-in-pager=<pager></p></div></div><div class="doc-postil"><div class="c-markdown"><p>打开寻呼机中的匹配文件(不是输出<code>grep</code>)。如果寻呼机恰好是 “较少” 或 “vi” ,并且用户只指定一个模式,则第一个文件将自动定位在第一个匹配位置。该<code>pager</code>论点是可选的; 如果指定,它必须粘贴到选项没有空格。如果<code>pager</code>未指定,将使用默认寻呼机(请参阅<code>core.pager</code> git-config [1] )。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-z --null</p></div></div><div class="doc-postil"><div class="c-markdown"><p>输出 \ 0 而不是通常跟在文件名后的字符。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-c --count</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示匹配的行数,而不是显示每条匹配的行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--color=<when></p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示结果为彩色。该值必须 always(默认),never 或 auto 。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-color</p></div></div><div class="doc-postil"><div class="c-markdown"><p>关闭匹配突出显示,即使配置文件将默认设置为彩色输出。和<code>--color=never</code>一样。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--break</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在不同文件的匹配之间打印空行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--heading</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在文件的上方显示文件名,而不是在每个显示的行的开头。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-p --show-function</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示包含匹配函数名称的上一行,除非匹配行是函数名称本身。该名称的确定方式与<code>git diff</code>制作补丁大小标头的方式相同(请参阅<code>Defining a custom hunk-header</code> gitattributes [5])。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-<num> -C <num> --context <num></p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示 <num> 前导和尾部线条,并放置包含<code>--</code>连续的匹配组之间的线条。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-A <num> --after-context <num></p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示 <num> 尾随线,并<code>--</code>在连续的匹配组之间放置一行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-B <num> --before-context <num></p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示 <num> 引出线,并<code>--</code>在相邻的匹配组之间放置一行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-W --function-context</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示前一行中包含函数名称的周围文本,直到下一个函数名称之前的文本,从而有效地显示找到匹配的整个函数。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--threads <num></p></div></div><div class="doc-postil"><div class="c-markdown"><p>要使用的 grep 工作线程数。参见<code>grep.threads</code>以<code>CONFIGURATION</code>获取更多信息。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-f <file></p></div></div><div class="doc-postil"><div class="c-markdown"><p>从 <file> 中读取模式,每行一个。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-e</p></div></div><div class="doc-postil"><div class="c-markdown"><p>下一个参数是模式。这个选项必须用于模式的开头,<code>-</code>并且应该在将用户输入传递给 grep 的脚本中使用。多个模式组合在一起<code>or</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--and --or --not ( … )</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指定如何使用布尔表达式组合多个模式。<code>--or</code>是默认的运营商。<code>--and</code>比<code>--or</code>优先。<code>-e</code>必须用于所有模式。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--all-match</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将多个模式表达式结合使用时<code>--or</code>,会指定此标志以将匹配限制为具有与其匹配的所有行的文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-q --quiet</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要输出匹配的行; 取而代之的是,当状态0出现匹配时退出,当不存在时退出非零状态。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><tree>…</p></div></div><div class="doc-postil"><div class="c-markdown"><p>而不是在工作树中搜索跟踪文件,搜索给定树中的斑点。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--</p></div></div><div class="doc-postil"><div class="c-markdown"><p>表示选项结束; 其余的参数是 <pathspec> 限制器。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><pathspec>…</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果给定,则将搜索限制为至少匹配一个模式的路径。两个前导路径匹配并支持 glob(7)模式。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>有关 <pathspec> 语法的更多详细信息,请参阅<code>pathspec</code> gitglossary [7]中的条目。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>例子</h2></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git grep 'time_t' -- '*.[ch]'</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>查找<code>time_t</code>在所有跟踪的 .c 和 .h 文件在工作目录及其子目录。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>查找具有<code>#define</code>的线,要么是<code>MAX_PATH</code>或<code>PATH_MAX</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git grep --all-match -e NODE -e Unexpected</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>查找具有<code>NODE</code>或<code>Unexpected</code>两者匹配的行的文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git grep solution -- :^Documentation</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>寻找<code>solution</code>,不包括<code>Documentation</code>中的文件。</p></div></div></div> |