ZEVORN.blog

November 25, 2024

如何使用 git send-email 参与开源社区

notearticleqemu1.7 min to read

本篇文章首发于 Nano Code 维基百科

可以选择使用 git send-email 发送邮件补丁到社区,下面给出具体步骤。

安装 Git Email

  1. 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

  1. 首先我们需要准备一个邮箱,笔者使用的是 yeah.net 邮箱,另外 qq /foxmail 邮箱、网易邮箱、腾讯企业邮箱等等也是可以的。

PS: 如果是国内环境,不推荐使用 google 邮箱,需要翻墙。

  1. 需要开启邮箱的 smtp 服务,这个可以 google 找一下教程。注意事项如下:

    • 有一些邮箱会为第三方客户端设置独立的密码,这个需要先 copy 下来,后面需要用;
    • 需要关注邮箱支持的 smtp 加密协议是 stl 还是 ssl,或者都支持,这个后续配置的时候要用到。
  2. 配置 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 = *****

编辑补丁与发送

  1. 常用的补丁生成命令:
git format-patch HEAD~<number> --subject-prefix="your prefix" --thread --cover-letter -s
  1. 发送邮件到邮件列表

以 qemu 为例,可以通过 ./script/get_maintainer.pl <patch-file> 来获取发送对象和抄送对象,具体发送邮件补丁的命令如下:

git send-email \--to=<email> \--cc=<email> \<your-patch>

邮件发送成功以后,终端会输出:

Result: 250

PS: 可以先发送给自己的邮箱,检查能否正常发送。有些开源社区邮件列表,第一次向其发邮件,社区需要审核,如果没有在邮件列表中看到自己的邮件,请耐心等待一下。

  1. 回复邮件

可以参考这篇文章:正确使用邮件列表参与开源社区的协作