English ▾ 主题 ▾ 最新版本 ▾ 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: Git 在找到此类 CRLF 时不执行任何操作。

  • 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