第49.1节:使用 Gmail 发送 git 电子邮件
背景:如果你在像 Linux 内核这样的项目上工作,提交代码时需要将你的提交发送到邮件列表进行审核,而不是创建 pull request。本节详细介绍了如何使用 Gmail 发送 git 电子邮件。
在你的 .gitconfig 文件中添加以下内容:
[sendemail]
smtpserver = smtp.googlemail.com
smtpencryption = tls
smtpserverport = 587
smtpuser = name@gmail.com
然后在网页上:进入 Google -> 我的账户 -> 连接的应用和网站 -> 允许不太安全的应用 -> 打开
创建补丁集:
git format-patch HEAD~~~~ --subject-prefix="PATCH <项目名称>"
然后将补丁发送到邮件列表:
git send-email --annotate --to project-developers-list@listserve.example.com 00*.patch
创建并发送更新版本(此示例中为版本2)的补丁:
git format-patch -v 2 HEAD~~~~
git send-email --to project-developers-list@listserve.example.com v2-00*.patch
第49.2节:撰写邮件
--from * 电子邮件发件人:
--[no-]to * 电子邮件收件人:
--[no-]cc * 电子邮件抄送:
--[no-]bcc * 电子邮件密送:
--subject * 电子邮件主题:
--in-reply-to * 电子邮件回复:
--[no-]xmailer * 添加 "X-Mailer:" 头(默认)。
--[no-]annotate * 在编辑器中审查每个将要发送的补丁。
--compose * 打开编辑器撰写介绍。
--compose-encoding * 假定介绍的编码。
--8bit-encoding * 如果未声明,假定 8bit 邮件的编码。
--transfer-encoding * 使用的传输编码(quoted-printable, 8bit, base64)。
第49.3节:通过邮件发送补丁
假设你对一个项目(这里是 ulogd2,官方分支是 git-svn)有很多提交,并且你想将你的补丁集发送到邮件列表 devel@netfilter.org。为此,只需在 git 目录的根目录打开一个 shell 并使用以下命令:
git format-patch --stat -p --raw --signoff --subject-prefix="ULOGD PATCH" -o /tmp/ulogd2/ -n gitsvn
git send-email --compose --no-chain-reply-to --to devel@netfilter.org /tmp/ulogd2/
第一个命令将在 /tmp/ulogd2/ 中创建一系列包含统计报告的补丁邮件,第二个命令将启动你的编辑器来撰写补丁集的介绍邮件。为了避免糟糕的线程邮件系列,可以使用:
git config sendemail.chainreplyto false