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

1 line
8.3 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-send-pack  - 将对象通过 Git 协议推送到另一个存储库</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 send-pack [--all] [--dry-run] [--force] [--receive-pack=&lt;git-receive-pack&gt;]                [--verbose] [--thin] [--atomic]                [--[no-]signed|--sign=(true|false|if-asked)]                [&lt;host&gt;:]&lt;directory&gt; [&lt;ref&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>通常你会想要使用<code>git push</code>这个命令的高级包装而不是这个。见git-push [1]。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>调用<code>git-receive-pack</code>可能是远程的存储库,并从当前的存储库更新它,发送名为 refs。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>选项</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>--receive-pack=&lt;git-receive-pack&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git-receive-pack</code>远程端程序的路径。通过 ssh 推送到远程存储库时有用,而且您没有默认$ PATH 目录中的程序。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--exec=&lt;git-receive-pack&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>与--receive-pack = &lt;git-receive-pack&gt;相同。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--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>--stdin</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从 stdin 中获取参考列表,每行一个。如果除了此选项外,还在命令行中指定了引用,则 stdin 中的引用将在命令行中的引用之后进行处理。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果<code>--stateless-rpc</code>与此选项一起指定则参考列表必须采用数据包格式pkt-line。每个 ref 必须位于一个单独的数据包中,并且该列表必须以 flush 数据包结尾。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--dry-run</p></div></div><div class="doc-postil"><div class="c-markdown"><p>除了实际发送更新之外,请做其他事</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--force</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通常,该命令拒绝更新远程 ref该远程 ref 不是用于覆盖它的本地 ref 的祖先。此标志禁用检查。这意味着远程仓库可能会失去提交; 小心使用它。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--verbose</p></div></div><div class="doc-postil"><div class="c-markdown"><p>详细地运行。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--thin</p></div></div><div class="doc-postil"><div class="c-markdown"><p>发送一个“精简”包,该包根据包中未包含的对象以分辨形式记录对象,以减少网络流量。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--atomic</p></div></div><div class="doc-postil"><div class="c-markdown"><p>使用原子事务来更新参考。如果任何一个 ref 没有更新,那么整个 push 将会失败而不改变任何 refs。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-signed   --sign=(true|false|if-asked)</p></div></div><div class="doc-postil"><div class="c-markdown"><p>GPG-信号 推送请求以更新接收端的 refs以便通过钩子检查和/或记录。如果<code>false</code>或者<code>--no-signed</code>,不会尝试签名。如果<code>true</code>或者<code>--signed</code>,如果服务器不支持签名推送,推送将失败。如果设置为<code>if-asked</code>,则当且仅当服务器支持签名推送时签名。如果实际的调用<code>gpg --sign</code>失败,推送也会失败。有关接收端的详细信息,请参阅 git-receive-pack [1]。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--push-option=&lt;string&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将指定的字符串作为推送选项传递给服务器端的挂钩使用。如果服务器不支持推送选项,则出错。有关详细信息,请参阅 git-push [1]和 githooks [5]。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;host&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>一个远程主机来存放版本库。当这部分被指定时通过ssh调用<code>git-receive-pack</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;directory&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>要更新的存储库。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;ref&gt;</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"><p>使用<code>--all</code>标志,本地存在的所有参考将转移到远程方。如果您使用此标志,则不能指定任何<code>&lt;ref&gt;</code>内容。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果没有<code>--all</code>和没有<code>&lt;ref&gt;</code>,本地和远端存在的头都会更新。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>当明确指定一个或多个<code>&lt;ref&gt;</code>(无论是在命令行还是通过<code>--stdin</code>)时,它可以是单个模式,也可以是由冒号“:”分隔的一对这样的模式(这意味着 ref 名称不能包含冒号它)。一个模式<code>&lt;name&gt;</code>只是一个<code>&lt;name&gt;:&lt;name&gt;</code>简写。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>每个模式对由源端(冒号前)和目标端(冒号后)组成。要推送的引用是通过找到匹配源端的匹配来确定的,并且推送的位置由目标端确定。用于匹配 ref 的规则与用于<code>git rev-parse</code>解析符号 ref 名称的规则相同。参见 git-rev-parse [1]。</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>如果&lt;src&gt;不完全匹配一个本地引用,那是错误的。</p></li><li><p>如果&lt;dst&gt;匹配多个远程引用,那是错误的。</p></li><li><p>如果&lt;dst&gt;与任何远程参考不匹配</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-js">-  it has to start with "refs/"; &lt;dst&gt; is used as the destination literally in this case.</pre></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-js">-  &lt;src&gt; == &lt;dst&gt; and the ref that matched the &lt;src&gt; must not exist in the set of remote refs; the ref matched &lt;src&gt; locally is used as the name of the destination.</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>如果没有<code>--force</code>&lt;src&gt; ref仅在&lt;dst&gt;不存在的情况下存储在远程,或者&lt;dst&gt;&lt;src&gt;的真子集(即祖先)。此检查称为“快进检查”,以避免意外覆盖远程参考并丢失其他人的提交。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>与此同时<code>--force</code>,所有裁判都禁用快进检查。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>可选地,一个&lt;ref&gt;参数可以带有加<code>+</code>号前缀以禁用仅在该 ref 上的快进检查。</p></div></div></div>