mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
1 line
9.2 KiB
HTML
1 line
9.2 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-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 <tree> [(-p <parent>)…]git commit-tree [(-p <parent>)…] [-S[<keyid>]] [(-m <message>)…] [(-F <file>)…] <tree></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><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 <parent></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 <message></p></div></div><div class="doc-postil"><div class="c-markdown"><p>提交日志消息中的段落。这可以不止一次给出,每个<message>成为它自己的段落。</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>从给定的文件中读取提交日志消息。用于<code>-</code>从标准输入读取。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-S<keyid> --gpg-sign=<keyid></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_DATE(nb“<”,“>”和“\ n”被删除)如果这些环境变量没有设置(某些),则信息从配置项user.name和user.email中获取,或者如果不存在,则会获取环境变量EMAIL,或,如果没有设置,那么系统用户名和用于发送邮件的<code>/etc/mailname</code>主机名(当该文件不存在时取回并返回到全限定主机名)。从stdin读取提交评论。如果没有通过“<”提供更改日志条目<code>git commit-tree</code>将只是等待一个输入,并与^ D.Date formatsThe终止<code>GIT_AUTHOR_DATE</code>,<code>GIT_COMMITTER_DATE</code>环境变量支持以下日期格式:Git的内部格式是<code><unix timestamp> <time zone offset></code>,其中<code><unix timestamp></code>是从unix新纪元的秒数。<code><time zone offset></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.DD,MM / 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的系统(例如Linux,Mac,Windows)上无法正常工作,反之亦然。此外,许多基于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-x,CP125x和许多其他版本,但<code>not</code>UTF-16/32,EBCDIC和CJK多字节编码(GBK,Shift-JIS,Big5,EUC-x,CP9xx等)。</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> |