将补丁应用为提交而不更改提交的消息?

时间:2021-03-11 18:24:25

标签: git commit patch

为了应用补丁作为提交 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

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

更新。是的,我知道 git commit --amend。但是,有没有办法避免使用任何额外的命令?

1 个答案:

答案 0 :(得分:2)

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

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