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

1 line
9.2 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-commit-tree  - 创建一个新的提交对象</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 commit-tree &lt;tree&gt; [(-p &lt;parent&gt;)…]git commit-tree [(-p &lt;parent&gt;)…] [-S[&lt;keyid&gt;]] [(-m &lt;message&gt;)…]                  [(-F &lt;file&gt;)…] &lt;tree&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>这通常不是最终用户想要直接运行的。请参阅git-commit [1]。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>基于提供的树对象创建一个新的提交对象并在stdout上发出新的提交对象ID。日志消息被从标准输入读取除非<code>-m</code><code>-F</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"><p>通常一个提交会标识一个新的“HEAD”状态尽管Git并不在乎你保存关于该状态的注释但实际上我们倾向于只将结果写入指向的文件<code>.git/HEAD</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>&lt;tree&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>-p &lt;parent&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>每个<code>-p</code>表示一个父提交对象的ID。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-m &lt;message&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>提交日志消息中的段落。这可以不止一次给出,每个&lt;message&gt;成为它自己的段落。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-F &lt;file&gt;</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>-S&lt;keyid&gt;   --gpg-sign=&lt;keyid&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>GPG标志提交。该<code>keyid</code>参数是可选的,并且默认为提交者身份; 如果指定,它必须粘贴到选项没有空格。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-gpg-sign</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要GPG签名提交以便<code>--gpg-sign</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>一个提交封装:</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>所有父对象ID</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>作者姓名,电子邮件和日期</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>提交者名称和电子邮件以及提交时间。虽然在命令行上提供了父对象ID但如果设置了作者和提交者信息则会从以下环境变量中获取信息GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATEnb“&lt;”,“&gt;”和“\ n”被删除如果这些环境变量没有设置某些则信息从配置项user.name和user.email中获取或者如果不存在则会获取环境变量EMAIL如果没有设置那么系统用户名和用于发送邮件的<code>/etc/mailname</code>主机名当该文件不存在时取回并返回到全限定主机名。从stdin读取提交评论。如果没有通过“&lt;”提供更改日志条目<code>git commit-tree</code>将只是等待一个输入,并与^ D.Date formatsThe终止<code>GIT_AUTHOR_DATE</code><code>GIT_COMMITTER_DATE</code>环境变量支持以下日期格式Git的内部格式是<code>&lt;unix timestamp&gt; &lt;time zone offset&gt;</code>,其中<code>&lt;unix timestamp&gt;</code>是从unix新纪元的秒数。<code>&lt;time zone offset&gt;</code>是UTC的正数或负数偏移量。例如CET比UTC早1小时<code>+0100</code>。RFC 2822例如RFC 2822所描述的标准电子邮件格式<code>Thu, 07 Apr 2005 22:13:13 +0200</code>。ISO 8601例如ISO 8601标准规定的时间和日期<code>2005-04-07T22:13:13</code>。解析器接受一个空格而不是<code>T</code>字符。注意此外日期部分可以采用以下格式YYYY.MM.DDMM / DD / YYYY和DD.MM.YYYY.DiscussionGit在某种程度上是字符编码不可知。</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>blob对象的内容是未解释的字节序列。在核心层面没有编码翻译。</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>路径名以UTF-8标准化形式C编码。这适用于树对象索引文件ref名称以及命令行参数环境变量和配置文件中的路径名<code>.git/config</code>请参阅git-config [1] gitignore [5]gitattributes [5]和gitmodules [5]。请注意核心级别的Git将路径名称视为非NUL字节序列不存在路径名称编码转换Mac和Windows除外。因此即使在使用传统扩展ASCII编码的平台和文件系统上使用非ASCII路径名也可以工作。但是在这些系统上创建的存储库在基于UTF-8的系统例如LinuxMacWindows上无法正常工作反之亦然。此外许多基于Git的工具只是假设路径名称为UTF-8并且无法正确显示其他编码。</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>提交日志消息通常以UTF-8编码但也支持其他扩展ASCII编码。这包括ISO-8859-xCP125x和许多其他版本<code>not</code>UTF-16/32EBCDIC和CJK多字节编码GBKShift-JISBig5EUC-xCP9xx等</p></li></ul></div></div><div class="doc-postil"><div class="c-markdown"><p>虽然我们鼓励提交日志消息使用UTF-8编码但核心和Git瓷器都设计为不强制项目使用UTF-8。如果特定项目的所有参与者发现使用遗留编码更方便Git不会禁止它。但是有几件事要牢记。</p></div></div><div class="doc-postil"><div class="c-markdown"><ol class="ol-level-0 list-paddingleft-2"><li><p><code>git commit</code><code>git commit-tree</code>如和果提交给它的提交日志消息看起来不像一个有效的UTF-8字符串则会发出警告除非您明确声明您的项目使用了旧版编码。这样说的方式是在<code>.git/config</code>文件中使用i18n.commitencoding 如下所示i18n commitEncoding = ISO-8859-1Commit用上述设置创建的对象记录<code>i18n.commitEncoding</code><code>encoding</code>标头中的值。这是为了帮助稍后看到他们的其他人。缺少这个头部意味着提交日志消息以UTF-8编码。</p></li></ol></div></div><div class="doc-postil"><div class="c-markdown"><p>2. <code>git log</code><code>git show</code><code>git blame</code>和朋友看<code>encoding</code>一个提交对象的报头并且尝试除非另有规定重新代码日志消息转换成UTF-8。您可以<code>i18n.logOutputEncoding</code><code>.git/config</code>文件中指定所需的输出编码,如下所示:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>i18n         logOutputEncoding = ISO-8859-1</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果您没有此配置变量,<code>i18n.commitEncoding</code>则会使用该值。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>请注意在提交对象级别强制使用UTF-8时我们故意选择不重新编写提交日志消息因为重新编码为UTF-8不一定是可逆操作。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>文件</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>/etc/mailname</p></div></div></div>