简体中文 ▾ 主题 ▾ 最新版本 ▾ git-mailinfo 最后更新于 2.43.0

名称

git-mailinfo - 从单个电子邮件消息中提取补丁和作者信息

概要

git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n]
	       [--[no-]scissors] [--quoted-cr=<action>]
	       <msg> <patch>

描述

从标准输入读取单个电子邮件消息,并将提交日志消息写入 <msg> 文件,将补丁写入 <patch> 文件。作者姓名、电子邮件和电子邮件主题将写入标准输出,供 git am 用于创建提交。通常无需直接使用此命令。请参阅 git-am[1]

选项

-k

通常,程序会从 Subject: 标头行中移除电子邮件垃圾信息,以提取提交日志消息的标题行。此选项可防止这种篡改,并且在读取 git format-patch -k 输出时最有用。

具体来说,以下内容将被移除,直到它们都不存在

  • 前导和尾随空格。

  • 前导 Re:re::

  • 前导方括号字符串(在 [] 之间,通常是 [PATCH])。

最后,连续的空格将标准化为单个 ASCII 空格字符。

-b

当 -k 不生效时,所有由 [] 对括起来的前导字符串都将被剥离。此选项将剥离限制为仅剥离包含“PATCH”一词的方括号字符串对。

-u

提交日志消息、作者姓名和作者电子邮件取自电子邮件,在最低限度地解码 MIME 传输编码后,将它们音译并重新编码为由 i18n.commitEncoding 指定的字符集(默认为 UTF-8)。这以前是可选的,但现在是默认行为。

请注意,即使使用此标志,补丁也始终按原样使用,不进行字符集转换。

--encoding=<encoding>

类似于 -u。但在重新编码时,此处指定的字符集将替代由 i18n.commitEncoding 或 UTF-8 指定的字符集。

-n

禁用元数据的所有字符集重新编码。

-m
--message-id

将 Message-ID 标头复制到提交消息的末尾。这有助于将提交与邮件列表讨论关联起来。

--scissors

移除正文中剪刀线(例如“-- >8 --”)之前的所有内容。该行代表剪刀和穿孔标记,用于请求读者在该行处剪切消息。如果该行出现在补丁前的消息正文中,使用此选项时,其之前的所有内容(包括剪刀线本身)都将被忽略。

如果您想在讨论线程中开始消息时包含对您正在回复的消息的评论和建议,并以提交补丁结束,用剪刀线分隔讨论和提议的提交日志消息的开头,此功能会很有用。

这可以通过配置选项 mailinfo.scissors 默认启用。

--no-scissors

忽略剪刀线。用于覆盖 mailinfo.scissors 设置。

--quoted-cr=<action>

处理使用 base64 或 quoted-printable 编码发送的电子邮件消息时,并且解码后的行以 CRLF 而不是简单的 LF 结尾时的操作。

有效操作为

  • nowarn: 当发现此类 CRLF 时,Git 将不执行任何操作。

  • warn: 如果发现此类 CRLF,Git 将为每条消息发出警告。

  • strip: Git 将把这些 CRLF 转换为 LF。

默认操作可以通过配置选项 mailinfo.quotedCR 设置。如果未设置此类配置选项,将使用 warn

<msg>

从电子邮件中提取的提交日志消息,通常不包括来自电子邮件主题的标题行。

<patch>

从电子邮件中提取的补丁。

配置

本节中以下所有内容均从 git-config[1] 文档中选择性地包含。内容与彼处相同:

mailinfo.scissors

如果为 true,则默认情况下使 git-mailinfo[1](因此也使 git-am[1])的行为如同在命令行中提供了 --scissors 选项。启用时,此功能会移除消息正文中剪刀线(即主要由 ">8"、"8<" 和 "-" 组成)之前的所有内容。

GIT

Git[1] 套件的一部分

scroll-to-top