补丁与邮件 Pro Git · 5.2 向项目贡献
Linux 内核等大型开源项目的协作方式:把提交导出为补丁文件,经邮件传递、审阅、应用。
| 命令 | 说明 |
|---|---|
git format-patch -1 <提交> | 把提交导出为 .patch 邮件补丁(-o 目录 指定输出位置) |
git format-patch origin/main | 导出 main 之后的所有本地提交为一组补丁 |
git apply --check <补丁> | 预演补丁能否干净打入(不实际修改) |
git apply <补丁> | 应用补丁,只改文件不产生提交 |
git am <mbox文件> | 应用 format-patch 生成的补丁,保留原作者与说明 |
git am --abort | 应用失败时放弃整批补丁,回到原状 |
git send-email <补丁> | 经 SMTP 直接把补丁发到邮件列表(先配置 sendemail.*) |
git request-pull origin/main <仓库url> | 生成拉取请求摘要,告知维护者拉取哪些提交 |
提示:普通团队用 Pull Request 即可;邮件补丁流常见于无平台依托的开源社区。