ChatGPT解决这个技术问题 Extra ChatGPT

Git合并不使用默认合并消息,打开带有默认消息的编辑器

如何强制 git merge 使用默认合并消息,而不是用所述消息加载我的编辑器?

我没有在 git config -l 中列出编辑器,所以我不确定它为什么会打开一个编辑器。

不确定,但不合并 - 作为提交 - 有选项 --no-edit

k
kjb

经过一番挖掘找到了答案

编辑:根据马克的建议,这是最好的方法:

git config --global core.mergeoptions --no-edit

与直接编辑 ~/.gitconfig 相比,建议使用 git config 来执行此操作可能更安全,例如 git config --global core.mergeoptions --no-edit,这样就不会创建格式错误的 ~/.gitconfig
这似乎适用于 git merge,但我仍然为 git pull 打开了一个编辑器。有没有办法为此禁用提交消息?
我找不到任何提及 core.mergeoptions,但它肯定适用于 branch.*.mergeoptions。有谁知道这个支持的版本?
这对我不起作用。合并和拉取仍然会在非 ff 合并上打开一个编辑器。使用 git 1.7.10.4
浏览 git 源代码和发行说明表明现在没有,也从来没有 core.mergeoptions。然而,当 git merge 本身被更改以调出编辑器时,将 GIT_MERGE_AUTOEDIT=no 添加到 git 1.7.10。正如@cmbuckley 所指出的,还有一些选项可用作 branch.*.mergeoptions
o
ouah

利用

export GIT_MERGE_AUTOEDIT=no

或者

git merge --no-edit

这几乎是我想要的,但它迫使你每次都输入 --no-edit。我找到的解决方案更改了 git merge 的默认行为
如这里所建议的,将其直接传递给合并命令在调用 git merge 的脚本中特别有用。您几乎总是希望脚本不提示用户。但是,如果知道如何将自定义消息传递给 git merge,那就太好了。也许 git merge -m "message" 有效,但我还没有尝试过。
对我来说,当接受的答案 (git config --global core.mergeoptions --no-edit) 没有时,export GIT_MERGE_AUTOEDIT=no 有效(用于合并)。
O
Orlando

这是 Git 的一项新功能 introduced in Git 1.7.10,使用旧功能(不要在合并时提供消息)将这两行放入您的 .bash_profile.bashrc

GIT_MERGE_AUTOEDIT=no
export GIT_MERGE_AUTOEDIT

d
dawn360

尝试这个

git merge --no-ff --no-edit -m "my custom merge message" somebranch