更改 git 合并分支冲突消息 [重复]

Posted

技术标签:

【中文标题】更改 git 合并分支冲突消息 [重复]【英文标题】:Change git merge branch conflict message [duplicate] 【发布时间】:2020-07-22 07:34:24 【问题描述】:

在合并有冲突的分支后,git 会自动生成提交消息,如下所示:

将分支 branchname 合并到 branchname

我目前正在使用的远程仓库获得了提交消息验证,并且只传递特定模板的消息。如果我使用之前给出的提交消息推送分支,它会被拒绝,因为它与模板不匹配。 Intellij Idea 只允许重写我编写的提交,并且调用 git rebase -i HEAD~3 不会在打开的编辑器中显示该提交。

如果有办法重命名/更改提交消息?谢谢。

【问题讨论】:

【参考方案1】:

试试git rebase -p -i HEAD~3

手册页说:

  -p, --preserve-merges
       Recreate merge commits instead of flattening the history by
       replaying commits a merge commit introduces. Merge conflict
       resolutions or manual amendments to merge commits are not
       preserved.

       This uses the --interactive machinery internally, but combining it
       with the --interactive option explicitly is generally not a good
       idea unless you know what you are doing (see BUGS below).

不过你应该没事。 BUGS 部分内容如下:

 ... Editing commits and rewording their commit messages should work fine, 
but attempts to reorder commits tend to produce counterintuitive results.  

例如(下面的git histgit log 的别名,有几个选项可以很好地显示):

atsaloli@Aleksey_X1_C2G:~/git/***-61125266$ git hist
* ecbdcc5 2020-04-09 | Add pineapple (HEAD) [Aleksey Tsalolikhin]
*   f9353df 2020-04-09 | Merge branch 'mybranch' into HEAD [Aleksey Tsalolikhin]
|\
| * aadd990 2020-04-09 | add cherry (mybranch, master) [Aleksey Tsalolikhin]
|/
* 166d386 2020-04-09 | Add pear to fruit list [Aleksey Tsalolikhin]
* 6a64ac2 2020-04-09 | Add bnana to fruit list [Aleksey Tsalolikhin]
* f42522f 2020-04-09 | Initialize fruit list [Aleksey Tsalolikhin]
atsaloli@Aleksey_X1_C2G:~/git/***-61125266$                              

还有:

atsaloli@Aleksey_X1_C2G:~/git/***-61125266$ git rebase -p -i HEAD~4                                                              
...                                                                                 
pick 6a64ac2 Add bnana to fruit list
pick 166d386 Add pear to fruit list
pick aadd990 add cherry
pick f9353df Merge branch 'mybranch' into HEAD
pick ecbdcc5 Add pineapple

现在我可以编辑合并提交消息了​​。

顺便说一句,看起来这个问题与Git: How to edit/reword a merge commit's message? 重复

【讨论】:

【参考方案2】:

默认情况下git rebase -i 不包括合并提交。它试图智能地创建线性历史,而不是重现合并。

要编辑您的提交消息,您可以运行git commit --amend,这将允许您在默认文本编辑器中编辑消息或git commit --amend -m "Write your message here" 直接在命令行上编写您的消息。

【讨论】:

【参考方案3】:

您是否尝试过 git commit --amend ?那应该可以让您在上次提交时修改消息。

【讨论】:

抱歉,必须在邮件中包含此内容。未尝试 --amend 因为这不是最后一条提交消息,据我所知,它只更改最后一条。 知道了,谢谢@nbelousov。是的,你说得对,git commit --amend 改变了最后一个。

以上是关于更改 git 合并分支冲突消息 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Git 中合并两个分支(主分支和演示分支)代码 [重复]

git合并重命名冲突

Git:合并期间的其他更改而没有冲突

在 Git 中合并但覆盖更改

Git 分支合并冲突及合并分类

在 GIT 中重做错误的合并