使用GIT向内核提交patch

本文详细介绍了如何使用Git向内核提交patch,包括生成、编辑、发送及注意事项,确保邮件列表中信息清晰有序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

               使用GIT向内核提交patch


1. 前提条件:

您的第一封patch[PATCH v1]的Message-ID为:
<
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
您的第二封patch[PATCH v1]的Message-ID为:
<
1303990781-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
维护者对您第一封patch恢复的Message-ID为:
<
20110505163008.GA2139@joana>
维护者对您第二封patch恢复的Message-ID为:
<
20110511175555.GE22065@joana>

连续回复如下构成树状列表thread:
<
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
    <
20110505163008.GA2139@joana>
    <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
        <
20110511175555.GE22065@joana>

您的第三封patch提交过程如下:

2. 生成patch:
$ git format-patch --thread=deep|shallow   \
     --in-reply-to=<
20110505163008.GA2139@joana> \
     -s commit号
根据提示填写patch的标题等patch相关信息。

注意:deep/shallow参数用来构成树状邮件列表thread,不同值产生不同形式的列表
      树形。
注意:commit号可以通过git log查询得知。
注意:通过-s可以产生Signed-off-by字段。如果多个开发者参与该patch的编写,则
      patch可以通过git-format-patch在他们的git repository之间传递,由最后
      一人将patch送往社区,这可以为所有参与者都添加到Signed-off-by字段。这
      样的patch同时也意味着它得到所有参与者的认可。

3. 编辑patch:
3.1. 首先需要编辑patch版本字段,如在Subject字段里追加v3标记

3.2. 编辑In-Reply-to和References字段形成树状thread
构成邮件列表最重要的RFC822字段是References字段,表示thread中的邮件参照路
径。为上面树状thread,您可能期望多种不同形式的回复,下面分别举例。

注意:References是RFC822多字段体内容(field-body-content)字段,多字段体内
      容填写时需要为每个字段内容都回车换行,再加一个空格(SPACE)或制表符
      (HTAB)。

3.2.1. deep形式
期望树:
<
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
    <
20110505163008.GA2139@joana>
    <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
        <
20110511175555.GE22065@joana>
            <新邮件>
填写域:
In-Reply-to: <
20110511175555.GE22065@joana>
References: <
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
 <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
 <
20110511175555.GE22065@joana>

3.2.2. shallow形式
期望树:
<
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
    <
20110505163008.GA2139@joana>
    <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
        <
20110511175555.GE22065@joana>
    <新邮件>
填写域:
In-Reply-to: <
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
References: <
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>

3.2.3. 其他形式
期望树:
<
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
    <
20110505163008.GA2139@joana>
    <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
        <
20110511175555.GE22065@joana>
        <新邮件>
填写域:
In-Reply-to: <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>
References: <
1303990781-15538-1-git-send-email-Ruiyi.zhang@atheros.com>
 <
1304657051-26453-1-git-send-email-Ruiyi.zhang@atheros.com>

4. 发送patch:
$ git send-email --in-reply-to="<
20110511175555.GE22065@joana>" \
   --thread --chain-reply-to   \
   --smtp-server="邮件服务器地址或域名"  \
   --to="邮件列表全名"    \
   --smtp-user=自己的邮件服务器用户名  \
   patch文件
根据提示填写接收者(To或Cc)和发送者(From)等信件相关信息。

注意:RFC822的邮件发送者和接收者姓名格式为:全名 <邮箱地址>,例如:
      "Gustavo F. Padovan" <
padovan@profusion.mobi>。
      为表示尊重,请尽可能写上对方的全名而非只有邮箱地址。

5. 其他事项
注意到邮件列表中一般不Cc单个收件人,而是直接To整个列表。单个的To和Cc会导致
被回复的信件在列表中被多重复制,最后的To或Cc字段将包含所有回复者而使邮件客
户端软件MUA出错。

这种情况下请不要再对邮件进行Cc和To字段的追加:对方回复您的邮件中有
Mail-Follow-Up字段,里面只有邮件列表地址而没有回复者邮件地址时。这表明对方
不期望您将他添加在Cc或To字段中,而收到重复的信件。任何时候您回复的邮件应当
总是在To字段中包含Return-Path中所包含的地址。

如果您的邮件希望指定的接收人有所反应(如,参与讨论,给出建议,接受patch
等),您可以将其邮件地址添加到Cc字段中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值