uTools-Manuals/docs/git/git checkout-index.html
2019-04-08 23:22:26 +08:00

1 line
8.7 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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-checkout-index  - 将索引中的文件复制到工作树上</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>概要</h2></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">git checkout-index [-u] [-q] [-a] [-f] [-n] [--prefix=&lt;string&gt;]                   [--stage=&lt;number&gt;|all]                   [--temp]                   [-z] [--stdin]                   [--] [&lt;file&gt;…]</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>-u   --index</p></div></div><div class="doc-postil"><div class="c-markdown"><p>更新索引文件中检出条目的统计信息。</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>如果文件存在或不在索引中,请保持安静</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-f   --force</p></div></div><div class="doc-postil"><div class="c-markdown"><p>强制覆盖现有文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-a   --all</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   --no-create</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要签出新文件,只刷新已经签出的文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--prefix=&lt;string&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在创建文件时,请将&lt;string&gt;(通常是一个包含尾部/的目录)</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--stage=&lt;number&gt;|all</p></div></div><div class="doc-postil"><div class="c-markdown"><p>而不是检查未合并的条目,从命名的阶段复制文件。&lt;number&gt;必须介于1和3之间。注意--stage = all自动表明--temp。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--temp</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将文件复制到工作目录而不是将内容写入临时文件。临时名称关联将写入 stdout。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--stdin</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从标准输入中读取路径列表,而不是从命令行获取路径列表。路径由 LF 分隔(即每行一个路径)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-z</p></div></div><div class="doc-postil"><div class="c-markdown"><p>只与<code>--stdin</code>有意义;路径用 NUL 字符而不是 LF 分隔。</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>标志的顺序过去很重要,但现在不再了。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>只是做<code>git checkout-index</code>什么都不做。你可能的意思<code>git checkout-index -a</code>。如果你想强制它,你想要的<code>git checkout-index -f -a</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>直观性不是这里的目标。重复性是。“没有参数意味着没有工作”的原因是你应该能够执行的脚本:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>这将强制所有现有的<code>*.h</code>文件被替换为它们的缓存副本。如果空的命令行暗示“全部”,那么这将强制刷新索引中的所有内容,这不是重点。但是由于<code>git checkout-index</code>接受--stdin使用它会更快</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>当你知道剩下的将是文件名时,这<code>--</code>就是一个好主意;例如<code>-a</code>,它可以防止文件名的问题。在脚本中使用<code>--</code>可能是一个很好的策略。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>使用--temp 或--stage = all</h2></div></div><div class="doc-postil"><div class="c-markdown"><p><code>--temp</code>被使用时(或被<code>--stage=all</code>表明时)<code>git checkout-index</code>将为每个正在签出的索引条目创建一个临时文件。该索引不会用 stat 信息更新。如果调用者需要所有未合并条目的所有阶段,这些选项可能非常有用,以便可以通过外部合并工具处理未合并的文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>列表将写入 stdout提供临时文件名与跟踪路径名的关联。列表格式有两个变体</p></div></div><div class="doc-postil"><div class="c-markdown"><p>1. tempname TAB路径RS</p><p>第一种格式<code>--stage</code>是省略或不使用时使用的格式<code>--stage=all</code>。字段 tempname 是包含文件内容的临时文件名path 是索引中的跟踪路径名。只输出请求的条目。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>2. stage1temp SP stage2temp SP stage3tmp TAB路径RS</p></div></div><div class="doc-postil"><div class="c-markdown"><p>第二种格式是什么时候使用<code>--stage=all</code>。如果在索引<code>.</code>中存在阶段条目或者没有阶段条目则三个阶段临时字段stage1tempstage2tempstage3temp会列出临时文件的名称。只有阶段0条目的路径将始终从输出中省略。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在这两种格式中,默认情况下 RS记录分隔符都是换行符但如果在命令行上传递-z则将为空字节。临时文件名总是安全的字符串; 他们将永远不会包含目录分隔符或空白字符。路径字段总是相对于当前目录,并且临时文件名始终相对于顶级目录。</p></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>仅更新和刷新已检出的文件</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">$ git checkout-index -n -f -a &amp;&amp; git update-index --ignore-missing --refresh</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>使用 <em style="font-style: italic;">git checkout-index </em>来“导出整个树”</p></div></div><div class="doc-postil"><div class="c-markdown"><p>前缀能力基本上使它<code>git checkout-index</code>作为一个“导出为树”函数使用很简单。只需在索引中读取所需的树,然后执行:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">$ git checkout-index --prefix=git-export-dir/ -a</pre></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git checkout-index</code> 会将索引“导出”到指定的目录中。</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"><pre class="prism-token token language-javascript">$ git checkout-index --prefix=.merged- Makefile</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>这将检出当前缓存<code>Makefile.</code><code>merged-Makefile</code>文件中的副本。</p></div></div></div>