设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.43.2 → 2.49.0 没有变更
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 没有变更
-
2.38.0
2022-10-02
- 2.29.1 → 2.37.7 没有变更
-
2.29.0
2020-10-19
- 2.20.1 → 2.28.1 没有变更
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 没有变更
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 没有变更
-
2.18.0
2018-06-21
- 2.4.12 → 2.17.6 没有变更
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
- 2.1.4 没有变更
-
2.0.5
2014-12-17
描述
该命令将使用 *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 user@example.com /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 = user@gmail.com port = 993
注意
|
如果您收到“文件夹不存在”的错误,您可能需要改为使用:folder = "[Google Mail]/Drafts" 。 |
注意
|
如果您的 Gmail 帐户设置为英语以外的其他语言,则“Drafts”文件夹的名称将被本地化。 |
一旦提交准备好发送,请运行以下命令
$ git format-patch --cover-letter -M --stdout origin/master | git imap-send
只需确保禁用电子邮件客户端中的自动换行(无论如何,Gmail 的 Web 界面都会自动换行,因此您需要使用真正的 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] 套件的一部分