1. 下载源码
1 |
$ git clone git://git.ipfire.org/ipfire-2.x.git |
2. 设置git用户的邮箱和姓名
1 2 3 |
$ git config --global user.email "email@sina.com" $ git config --global user.name "name" |
3. 修改文件后commit
1 2 3 4 5 6 7 |
$ git commit -m "Simple Chinese language" commit 74179cda78a4fcbdbb94e0bb8e5ce0c03f38b5fc (HEAD -> master) Author: name <email@sina.com> Date: Mon Oct 7 16:17:03 2019 +0800 Simple Chinese language |
4. 生成patch文件
1 |
$ git format-patch -1 74179cda78a4fcbdbb94e0bb8e5ce0c03f38b5fc --stdout > zh_language.patch |
5. 设置git的smtp参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ git config --global sendemail.from "name <email@sina.com>" $ git config --global sendemail.smtpServer smtp.sina.com $ git config --global sendemail.smtpUser email@sina.com # 邮箱的实际登录密码 $ git config --global sendemail.smtpPass pass # 新浪邮箱要求登陆认证之后才能发送邮件 $ git config --global sendemail.smtpAuth "LOGIN" # 新浪邮箱建议使用BASE64编码 $ git config --global sendemail.transferEncoding "BASE64" $ git config --global sendemail.smtpEncryption tls $ git config --global sendemail.chainReplyTo false $ git config --global sendemail.smtpServerPort 587 |
6. 发送邮件给development@lists.ipfire.org
1 |
$ git send-email zh_language.patch --smtp-debug=1 |
输入ipfire-devel邮箱地址development@lists.ipfire.org, 回车两次就完成.
7.查看是否提交成功
发送邮件过一段时间后,在这里能查到https://lists.ipfire.org/mailman/listinfo/development,不同的模块有对应的邮件列表地址。
8.常见错误
测试中发现有时候 git apply 应用git format-patch创建的补丁文件的时候,可能报告如下错误:
1 |
git apply patch doesn't work: no such file or directory |
也就是应用补丁的时候会失败,造成这种情况的原因一般是同一份代码配置了多个远程仓库导致的。
比如我同步了一份代码到自己的服务器上,这样就容易出现这种情况。
解决方法一般是克隆一份独立的代码,单独在这个独立的代码中创建代码补丁。