首页 > 解决方案 > 将补丁应用为提交而不更改提交的消息?

问题描述

为了将补丁应用为提交https://stackoverflow.com/a/2250170/1778275建议使用:

git am --signoff < a_file.patch 

但是,它会更改提交的消息git log

yyy

Signed-off-by: Name Surname <local-part@domain_name>

而原始提交的消息是:

[xxx] yyy

问题:如何保留原始提交的消息?

UPD。是的,我知道git commit --amend。但是,有什么方法可以避免使用任何额外的命令?

标签: gitcommitpatch

解决方案


您拥有的命令有两件事。首先,该--signoff命令添加以 开头的行Signed-off-by。一些项目,如 Git 和 Linux,使用它来跟踪补丁的来源并验证每个人都同意许可条款。但是如果你不想要这种修改,比如说,因为你的项目没有使用那种机制,那么你可以省略它。

此外,git am默认情况下,通过删除括号中的项目来清理主题行。这是因为在典型的邮件列表工作流程中,经常使用类似 的标题[PATCH],因此用户可以轻松找到补丁,但这不希望作为提交消息的一部分。如果您不想完成此剥离,您可以使用--keep,Git 不会剥离括号之间的数据。如果您只想剥离文字 text [PATCH],请--keep-non-patch改用。


推荐阅读