mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
1 line
16 KiB
HTML
1 line
16 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-apply - 将补丁应用于文件和/或索引</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 apply [--stat] [--numstat] [--summary] [--check] [--index] [--3way] [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse] [--allow-binary-replacement | --binary] [--reject] [-z] [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached] [--ignore-space-change | --ignore-whitespace] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=<path>] [--include=<path>] [--directory=<root>] [--verbose] [--unsafe-paths] [<patch>…]</pre></div></div><div class="doc-postil"><div class="c-markdown"><h2>描述</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>读取提供的差异输出(即“一个补丁”)并将其应用于文件。从存储库中的子目录运行时,目录外的修补路径将被忽略。使用该<code>--index</code>选项,修补程序也应用于索引,并使用该<code>--cached</code>选项将修补程序应用于索引。如果没有这些选项,该命令仅将修补程序应用于文件,并且不要求它们位于 Git 存储库中。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>此命令应用修补程序,但不创建提交。使用 git-am [1] 创建 git-format-patch [1] 生成的补丁和/或通过电子邮件接收的补丁。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>选项</h2></div></div><div class="doc-postil"><div class="c-markdown"><p><patch>…</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从中读取补丁的文件。<code>-</code>可以用来从标准输入中读取。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--stat</p></div></div><div class="doc-postil"><div class="c-markdown"><p>输出 diffstat 代替输入补丁。关闭“适用”。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--numstat</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>--stat</code>与之类似,但显示十进制表示法中添加和删除的行数以及不带缩写的路径名,以使其更加机器友好。对于二进制文件,输出两个<code>-</code>而不是说<code>0 0</code>。关闭“适用”。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--summary</p></div></div><div class="doc-postil"><div class="c-markdown"><p>输出从 git diff 扩展头获取的信息(例如创建,重命名和模式更改)的精简摘要,而不是应用该修补程序。关闭“适用”。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--check</p></div></div><div class="doc-postil"><div class="c-markdown"><p>而不是应用修补程序,查看修补程序是否适用于当前工作树和/或索引文件并检测错误。关闭“适用”。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--index</p></div></div><div class="doc-postil"><div class="c-markdown"><p>当<code>--check</code>生效或应用修补程序(当没有任何禁用修补程序的选项时,这是默认设置)时,请确保修补程序适用于当前索引文件记录的内容。如果要在工作树中修补的文件不是最新的,则会将其标记为错误。该标志也会导致索引文件被更新。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--cached</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在不接触工作树的情况下应用补丁。取而代之的是缓存数据时应用补丁,并将结果存储在索引中,而不使用工作树。这暗示<code>--index</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-3 --3way</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果修补程序不能干净地应用,如果修补程序记录它应该应用的斑点的标识,则回退到3路合并,并且我们在本地可以使用这些斑点,可能会在工作树中的文件中留下冲突标记供用户解决。此选项隐含<code>--index</code>期权,并与不兼容<code>--reject</code>和<code>--cached</code>选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--build-fake-ancestor=<file></p></div></div><div class="doc-postil"><div class="c-markdown"><p>为每个 blob <code>git diff</code>嵌入更新的输出<code>index information</code>以帮助识别该修补程序适用的原始版本。当给出这个标志,并且如果原始版本的 blob 在本地可用,则建立包含这些 blob 的临时索引。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>遇到纯模式更改(没有索引信息)时,将从当前索引读取信息。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-R --reverse</p></div></div><div class="doc-postil"><div class="c-markdown"><p>反向应用补丁。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--reject</p></div></div><div class="doc-postil"><div class="c-markdown"><p>对于原子性,<code>git apply</code>默认情况下会失败整个修补程序,并且在某些区块不适用时不会触及工作树。该选项使它应用可用的补丁部分,并将被拒绝的宏保留在对应的 * .rej 文件中。</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>--numstat</code>给出时,请勿使用路径名,但使用 NUL 终止的机器可读格式。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果没有这个选项,带有“不寻常”字符的路径名将按照配置变量的说明引用<code>core.quotePath</code>(请参阅 git-config [1] )。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-p<n></p></div></div><div class="doc-postil"><div class="c-markdown"><p>从传统差异路径中删除 <n> 引导斜杠。默认值是1。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-C<n></p></div></div><div class="doc-postil"><div class="c-markdown"><p>确保每次更改之前和之后至少有 <n> 行周围环境匹配。当存在较少的周围环境线时,它们都必须匹配。默认情况下,不会忽略上下文。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--unidiff-zero</p></div></div><div class="doc-postil"><div class="c-markdown"><p>默认情况下,<code>git apply</code>预计所应用的修补程序是至少包含一行上下文的统一差异。这提供了良好的安全措施,但在应用使用生成的差异时发生故障<code>--unified=0</code>。绕过这些检查使用<code>--unidiff-zero</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>--apply</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果您使用<code>apply</code>上面标记为“关闭”的任何选项,则<code>git apply</code>读取并输出所请求的信息,而不实际应用该补丁。在这些标志之后给这个标志也应用补丁。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-add</p></div></div><div class="doc-postil"><div class="c-markdown"><p>应用修补程序时,忽略修补程序添加的内容。这可以用来提取两个文件之间的公共部分,方法是首先<code>diff</code>在这两个文件上运行,并使用此选项应用结果,该选项将应用删除部分,但不应用添加部分。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--allow-binary-replacement --binary</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从历史上看,我们不允许在未经用户明确许可的情况下应用二进制补丁,并且此标志是实现此目的的方式。目前我们总是允许二进制补丁程序应用程序,所以这是一个无操作。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--exclude=<path-pattern></p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要将更改应用于与给定路径模式匹配的文件。这在导入补丁集时很有用,您想要排除某些文件或目录。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--include=<path-pattern></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>--exclude</code>和<code>--include</code>模式时,将按照它们在命令行上出现的顺序进行检查,并且第一个匹配将确定是否使用每个路径的修补程序。缺省情况下,如果命令行中没有包含模式,则缺省使用不匹配任何包含/排除模式的路径补丁,如果有任何包含模式则忽略该补丁。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--ignore-space-change --ignore-whitespace</p></div></div><div class="doc-postil"><div class="c-markdown"><p>应用修补程序时,如果需要,请忽略上下文行中空白的更改。上下文行将保留它们的空白,并且不管<code>--whitespace</code>选项的值如何,它们都不会进行空白修复。虽然新的线路仍然是固定的。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--whitespace=<action></p></div></div><div class="doc-postil"><div class="c-markdown"><p>应用修补程序时,检测具有空白错误的新行或修改过的行。认为空白错误是由<code>core.whitespace</code>配置控制的。默认情况下,尾随空格(包括单独由空格组成的行)和空格字符(紧跟该行的初始缩进内的制表符后面的空格字符)将被视为空白错误。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>默认情况下,该命令输出警告消息但应用修补程序。当<code>git-apply</code>用于统计而不应用补丁时,它默认为<code>nowarn</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>您可以使用不同的<code><action></code>值来控制此行为:</p></div></div><div class="doc-postil"><div class="c-markdown"><ul class="ul-level-0 list-paddingleft-2" style="margin: 10px 0px 10px 20px;"><li><p><code>nowarn</code> 关闭后面的空格警告。</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><ul class="ul-level-0 list-paddingleft-2" style="margin: 10px 0px 10px 20px;"><li><p><code>warn</code> 输出一些此类错误的警告,但按原样应用该补丁(默认)。</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><ul class="ul-level-0 list-paddingleft-2" style="margin: 10px 0px 10px 20px;"><li><p><code>fix</code>输出一些此类错误的警告,并在修复它们之后应用修补程序(<code>strip</code>是同义词---该工具仅用于考虑尾部空白字符作为错误,并且修复涉及<code>stripping</code>它们,但现代 Gits 做得更多)。</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><ul class="ul-level-0 list-paddingleft-2" style="margin: 10px 0px 10px 20px;"><li><p><code>error</code> 输出一些此类错误的警告,并拒绝应用该修补程序。</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><ul class="ul-level-0 list-paddingleft-2" style="margin: 10px 0px 10px 20px;"><li><p><code>error-all</code>类似<code>error</code>但显示所有错误。</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><p>--inaccurate-eof</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在某些情况下,某些版本<code>diff</code>不能在文件末尾正确检测到缺失的新行。因此,这些程序创建的补丁<code>diff</code>不会正确记录不完整的行。此选项通过解决此错误来增加对应用此类修补程序的支持。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-v --verbose</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将进展报告给 stderr 。默认情况下,只会打印有关当前正在应用的修补程序的消息。该选项会导致报告其他信息。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--recount</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要相信 hunk headers 中的行数,但通过检查补丁来推断它们(例如,在编辑补丁而不适当调整 hunk headers 之后)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--directory=<root></p></div></div><div class="doc-postil"><div class="c-markdown"><p>将 <root> 加入所有文件名。如果还传递了“-p”参数,则在应用新根之前应用该参数。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>例如,谈到更新补丁<code>a/git-gui.sh</code>到<code>b/git-gui.sh</code>可以应用到文件中的工作树<code>modules/git-gui/git-gui.sh</code>运行<code>git apply --directory=modules/git-gui</code>。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--unsafe-paths</p></div></div><div class="doc-postil"><div class="c-markdown"><p>默认情况下,影响工作区域以外的补丁( Git 控制的工作树或当 “git apply” 用作 GNU 补丁的替代品时的当前工作目录)被拒绝为错误(或恶作剧)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>当<code>git apply</code>用作“更好的 GNU 补丁”时,用户可以通过<code>--unsafe-paths</code>选项来覆盖此安全检查。此选项在使用<code>--index</code>或<code>--cached</code>不使用时无效。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>组态</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>apply.ignoreWhitespace</p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置为<code>change</code>如果您想要默认情况下忽略空白的更改。设置为以下之一:否,无,从不,如果希望空格中的更改变得显着,则为false。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>apply.whitespace</p></div></div><div class="doc-postil"><div class="c-markdown"><p>当没有<code>--whitespace</code>从命令行给出标志时,这个配置项被用作默认值。</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 apply</code>如下方式处理这些更改。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果<code>--index</code>指定(明确或隐含地),则子模块提交必须完全匹配要应用的修补程序的索引。如果有任何子模块被检出,则这些检出完全被忽略,即它们不需要是最新的或清洁的,并且它们不被更新。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果<code>--index</code>未指定,则补丁中的子模块落实将被忽略,只会检查是否存在相应的子目录,并且(如果可能)更新。</p></div></div></div> |