【问题标题】:Apply patch as commit without changing the commit's message?将补丁应用为提交而不更改提交的消息?
【发布时间】:2021-06-09 18:55:37
【问题描述】:

为了将补丁应用为提交 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。但是,有什么方法可以避免使用任何额外的命令?

【问题讨论】:

  • 你总是在提交后立即执行git commit --amend 以更改其消息。

标签: git commit patch


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-11
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多