Git合并冲突自动生成的提交消息不符合模板,如何修改?
修改Git自动生成的合并提交消息的可行方法
嘿,这个问题我之前踩过坑!合并提交因为带有两个父节点,常规的交互式变基确实不会把它列出来,不过有几个实用的方法能搞定这个自动生成的提交消息修改问题:
修改最近的合并提交(最快捷)
如果这个自动生成的合并提交是你本地的最后一次提交,直接在终端跑这个命令:git commit --amend这会唤起你的默认代码编辑器,把那个不符合要求的
Merge branch {branchname} into {branchname}替换成远程仓库要求的模板消息,保存退出就完成修改了。
要是你习惯用IntelliJ IDEA操作,执行完这个命令后,IDEA会自动同步更新提交记录,不用额外操作。修改历史中的合并提交
如果这个合并提交不是最新的,常规的git rebase -i HEAD~3确实找不到它——因为默认的变基会扁平化提交历史,忽略多父节点的合并结构。这时候需要加上--rebase-merges参数来保留合并关系:git rebase -i --rebase-merges HEAD~N把
N换成能覆盖目标合并提交的提交数量(比如你提到的HEAD~3,如果合并提交在这3条记录里的话)。打开的交互式变基界面中,你会看到那个合并提交的条目,把它前面的pick改成reword,保存退出后,Git会引导你修改对应的提交消息,改成符合要求的内容即可。小提示:如果已经把有问题的提交推送到远程了,修改后需要用
git push --force-with-lease进行安全的强制推送(比直接--force更稳妥,能避免覆盖其他人的提交)。不过看你说推送会被拒绝,应该还没推送,所以本地修改完直接正常推送就好。
内容的提问来源于stack exchange,提问作者nbelousov




