本篇文章首发于 Nano Code 维基百科
可以选择使用 git send-email 发送邮件补丁到社区,下面给出具体步骤。
安装 Git Email
- ubuntu 默认不会安装完全版的 git ,因此需要我们在安装 git 以后( ulan 默认安装了 git ),再安装 git-email :
sudo apt updatesudo apt install git-email
如果安装失败,比如遇到下面的问题:
可以手动添加 Git 官方的 PPA,再次安装:
sudo add-apt-repository ppa:git-core/ppasudo apt updatesudo apt install git-email
配置 Git Email
- 首先我们需要准备一个邮箱,笔者使用的是 yeah.net 邮箱,另外 qq /foxmail 邮箱、网易邮箱、腾讯企业邮箱等等也是可以的。
PS: 如果是国内环境,不推荐使用 google 邮箱,需要翻墙。
-
需要开启邮箱的 smtp 服务,这个可以 google 找一下教程。注意事项如下:
- 有一些邮箱会为第三方客户端设置独立的密码,这个需要先 copy 下来,后面需要用;
- 需要关注邮箱支持的 smtp 加密协议是 stl 还是 ssl,或者都支持,这个后续配置的时候要用到。
-
配置 git email 绑定自己的邮箱,这里推荐使用命令行,而不是直接修改 .gitconfig,避免配置出错 :
git config --global sendemail.smtpEncryption <ssl or stl>git config --global sendemail.smtpServer <your smtp address>git config --global sendemail.smtpServerPort 587git config --global sendemail.smtpUser <your email>git config --global sendemail.smtpPass = <your pass or smtp pass>
上述命令中的 <>
内部的部分,需要你按照自己的实际邮箱信息来填写。
配置完毕以后,可以 cat ~/.gitconfig
检查一下:
[sendemail] smtpEncryption = <ssl or stl> smtpServer = <your smtp address> smtpServerPort = 587 smtpUser = <your email> smtpPass = *****
编辑补丁与发送
- 常用的补丁生成命令:
git format-patch HEAD~<number> --subject-prefix="your prefix" --thread --cover-letter -s
--subject-prefix=
可以为补丁插入统一的 prefix,一般写 PATCH or RFC 或者组合;--cover-letter
生成一个序号为 0 的抬头文件,可以编辑它,增加一些补丁说明;-s
为补丁插入邮箱签名
- 发送邮件到邮件列表
以 qemu 为例,可以通过 ./script/get_maintainer.pl <patch-file>
来获取发送对象和抄送对象,具体发送邮件补丁的命令如下:
git send-email \--to=<email> \--cc=<email> \<your-patch>
邮件发送成功以后,终端会输出:
Result: 250
PS: 可以先发送给自己的邮箱,检查能否正常发送。有些开源社区邮件列表,第一次向其发邮件,社区需要审核,如果没有在邮件列表中看到自己的邮件,请耐心等待一下。
- 回复邮件
可以参考这篇文章:正确使用邮件列表参与开源社区的协作。