简体中文 ▾ 主题 ▾ 最新版本 ▾ 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>

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

<patch>

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

配置

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

mailinfo.scissors

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

GIT

Git[1] 套件的一部分