从邮件列表应用 git 补丁

Posted

技术标签:

【中文标题】从邮件列表应用 git 补丁【英文标题】:Applying git patches from a mailing list 【发布时间】:2014-09-11 10:08:30 【问题描述】:

我需要将补丁(来自邮件列表)应用到本地 git 存储库中

邮件列表中的补丁包含封面消息和有关它的简要信息。我可以将适当的补丁文本复制粘贴到文件中并将其用作补丁。如果可能的话,有人可以建议一个更好的选择吗?

【问题讨论】:

你试过man git-am吗? 不,git-am 将接受使用 format-patch 创建的补丁,但我使用 git commit 创建,添加了提交消息但从未使用过 format-patch .. 它是否可以在没有 format-patch 的情况下创建补丁也是? How to use git am to apply patches from email messages?的可能重复 【参考方案1】:

您可以选择git applygit amgit mailinfo

git mailinfo 命令将处理电子邮件并将补丁与日志分开,但通常您可以简单地使用git am。另请注意--scissors

--剪刀

在剪刀线之前删除正文中的所有内容。主要由剪刀(“>8”或“8

【讨论】:

【参考方案2】:

如果您确实使用 [git am][1],请不要使用任何“剪刀”标记(使用 [-c/--scissor 选项][2])

仅使用-- >8 --

随着 Git 2.29(2020 年第四季度),“剪刀线”的解释得到了澄清。

参见 Evan Gates (deepcube) 的 commit 287416d(2020 年 9 月 28 日)。(由 Junio C Hamano -- gitster -- 合并到 commit 9839cce,2020 年 10 月 4 日)

Doc: 显示剪刀线示例

签字人:埃文·盖茨

文字试图说明代码接受许多看起来像剪刀和穿孔标记的变体,但提供的细节太少,用户无法自行决定什么是剪刀线,什么不是剪刀线。

不要更多地描述启发式方法,而只是说明将始终被接受的内容,即“-- >8 --”,因为这无助于用户给他们更多的选择和灵活性以及在他们的剪刀线中“创造性”。

git mailinfo 现在包含在其man page 中:

在剪刀线之前删除正文中的所有内容(例如“-- >8 --”)。 线代表剪刀和穿孔标记,用于 要求读者剪掉该行的信息。 [1]:https://git-scm.com/docs/git-am [2]:https://git-scm.com/docs/git-am#Documentation/git-am.txt--c

【讨论】:

以上是关于从邮件列表应用 git 补丁的主要内容,如果未能解决你的问题,请参考以下文章

使用 git send-email 回复邮件列表中的同一线程

Git常用命令表

Git 命令速查表

你如何使用 git format-patch 将提交压缩到一个补丁中?

Git 常用命令速查表

常用的Git命令