git - 将补丁应用为提交而不更改提交的消息?
问题描述
为了将补丁应用为提交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
。但是,有什么方法可以避免使用任何额外的命令?
解决方案
您拥有的命令有两件事。首先,该--signoff
命令添加以 开头的行Signed-off-by
。一些项目,如 Git 和 Linux,使用它来跟踪补丁的来源并验证每个人都同意许可条款。但是如果你不想要这种修改,比如说,因为你的项目没有使用那种机制,那么你可以省略它。
此外,git am
默认情况下,通过删除括号中的项目来清理主题行。这是因为在典型的邮件列表工作流程中,经常使用类似 的标题[PATCH]
,因此用户可以轻松找到补丁,但这不希望作为提交消息的一部分。如果您不想完成此剥离,您可以使用--keep
,Git 不会剥离括号之间的数据。如果您只想剥离文字 text [PATCH]
,请--keep-non-patch
改用。
推荐阅读
- django - 相关名称不适用于 django 多对多字段 django
- reactjs - React-native-fast-images 无法使用
- css - 单击按钮时如何设置状态挂钩并更改css类
- java - 我正在尝试找到一种方法来处理键“movieID”的“1”重复条目的错误 1062
- javascript - 如何使用 javascript 转换此 sql 查询?
- python - 如何在 C 或 Python 中实时读取多个串口
- awk - awk sub/gsub 2 个匹配项之间的子字符串,重复结束分隔符
- javascript - 事件 .click 触发多次
- html - 如何为占位符文本添加填充
- c++ - 即使参数标记为“const”,为什么还要调用复制构造函数?