设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.43.2 → 2.47.0 无更改
- 2.43.1 02/09/24
- 2.43.0 11/20/23
- 2.38.1 → 2.42.3 无更改
- 2.38.0 10/02/22
- 2.29.1 → 2.37.7 无更改
- 2.29.0 10/19/20
- 2.20.1 → 2.28.1 无更改
- 2.20.0 12/09/18
- 2.19.1 → 2.19.6 无更改
- 2.19.0 09/10/18
- 2.18.1 → 2.18.5 无更改
- 2.18.0 06/21/18
- 2.4.12 → 2.17.6 无更改
- 2.3.10 09/28/15
- 2.2.3 09/04/15
- 2.1.4 无更改
- 2.0.5 12/17/14
描述
此命令将使用 git format-patch 生成的邮箱上传到 IMAP 草稿文件夹。这允许将补丁作为其他电子邮件发送,使用无法直接读取邮箱文件的邮件客户端时。该命令还适用于任何通用邮箱,其中电子邮件按以下顺序包含 "From"、"Date" 和 "Subject" 字段。
典型的用法类似于
git format-patch --signoff --stdout --attach origin | git imap-send
配置
要使用该工具,imap.folder
和 imap.tunnel
或 imap.host
必须设置为相应的值。
本节中以上所有行不包含在 git-config[1] 文档中。以下内容与该文档中的内容相同
- imap.folder
-
将邮件放入的文件夹,通常是草稿文件夹。例如:"INBOX.Drafts"、"INBOX/Drafts" 或 "[Gmail]/Drafts"。必需。
- imap.tunnel
-
用于设置隧道到 IMAP 服务器的命令,命令将通过该隧道传输,而不是使用直接网络连接到服务器。当未设置 imap.host 时,此选项为必需的。
- imap.host
-
用于标识服务器的 URL。对于非安全连接,使用
imap://
前缀;对于安全连接,使用imaps://
前缀。当设置了 imap.tunnel 时,此选项将被忽略;但在其他情况下,此选项为必需的。 - imap.user
-
登录到服务器时使用的用户名。
- imap.pass
-
登录到服务器时使用的密码。
- imap.port
-
用于连接到服务器的整数端口号。默认为
imap://
主机的 143 和imaps://
主机的 993。当设置了 imap.tunnel 时,此选项将被忽略。 - imap.sslverify
-
用于启用/禁用对 SSL/TLS 连接使用的服务器证书进行验证的布尔值。默认为
true
。当设置了 imap.tunnel 时,此选项将被忽略。 - imap.preformattedHTML
-
用于启用/禁用发送补丁时使用 html 编码的布尔值。html 编码的补丁将用 <pre> 括起来,并具有 text/html 的内容类型。具有讽刺意味的是,启用此选项会导致 Thunderbird 将补丁作为 plain/text、format=fixed 电子邮件发送。默认为
false
。 - imap.authMethod
-
指定用于对 IMAP 服务器进行身份验证的身份验证方法。如果 Git 使用 NO_CURL 选项构建,或者您的 curl 版本早于 7.34.0,或者您使用
--no-curl
选项运行 git-imap-send,则唯一支持的方法是 CRAM-MD5。如果未设置此选项,则 git imap-send 使用基本的 IMAP 纯文本 LOGIN 命令。
示例
使用隧道模式
[imap] folder = "INBOX.Drafts" tunnel = "ssh -q -C [email protected] /usr/bin/imapd ./Maildir 2> /dev/null"
使用直接模式
[imap] folder = "INBOX.Drafts" host = imap://imap.example.com user = bob pass = p4ssw0rd
使用直接模式和 SSL
[imap] folder = "INBOX.Drafts" host = imaps://imap.example.com user = bob pass = p4ssw0rd port = 123 ; sslVerify = false
注意
|
如果怀疑无法连接的原因是您尝试设置(或已设置)的私有服务器 example.com 上使用的证书无法正确验证,则可能需要在排查问题时使用 sslVerify=false 。 |
使用 Gmail 的 IMAP 界面
[imap] folder = "[Gmail]/Drafts" host = imaps://imap.gmail.com user = [email protected] port = 993
注意
|
如果出现 "Folder doesn’t exist"(文件夹不存在)错误,您可能需要改为使用:folder = "[Google Mail]/Drafts" 。 |
注意
|
如果您的 Gmail 帐户设置为非英语语言,则 "Drafts"(草稿)文件夹的名称将被本地化。 |
准备好发送提交后,运行以下命令
$ git format-patch --cover-letter -M --stdout origin/master | git imap-send
只需确保在电子邮件客户端中禁用折行(Gmail 的网络界面无论如何都会折行,因此您需要使用真正的 IMAP 客户端)。
注意
确保电子邮件程序发送的电子邮件消息符合项目标准仍然是您的责任。许多项目不喜欢将补丁附加。某些邮件代理会以使补丁失败的方式转换补丁(例如,折行,将它们发送为 format=flowed)。如果您没有检查这一点,您将收到愤怒的火焰,嘲笑您。
特别是 Thunderbird 已知存在问题。Thunderbird 用户可能希望访问此网页以了解更多信息:https://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
另请参阅
git-format-patch[1]、git-send-email[1]、mbox(5)
Git
是 git[1] 套件的一部分