如何退出 git merge 并询问提交消息?

如何退出 git merge 并询问提交消息?

我正在使用 git。我做了正常的合并,但它一直问这个:

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.

而且就算我写了点什么,我也无法从这里退出。我找不到解释这一点的文档。我应该怎么做?

答案1

这取决于您使用的编辑器。

如果您可以使用ESCand:wqESCand Shift+ zz。两个命令都保存文件并退出。

您还可以检查~/.gitconfig编辑器,在我的例子中(cat ~/.gitconfig):

[user]
    name = somename
    email = [email protected]
[core]
    editor = vim
    excludesfile = /home/mypath/.gitignore_global
[color]
  ui = auto
  # other settings here

答案2

此处标记为正确的答案对我不起作用,因为在使用wq或退出编辑器后:q!,文件将被保存并发生合并。

我现在发现的替代方法是使用Ctrl+暂停 vim 进程Z,然后使用 a 中止合并,然后终止后台进程(当你执行+git merge --abort时,你会看到 PID )CtrlZ

答案3

如果您遇到这种情况,我在这里找不到问题的答案不是使用vim编辑器。我的 WSL 编辑器似乎是nano,我离开屏幕的唯一方法MERGE_MSG是使用:CTRL+ X

希望这对其他人有帮助。

答案4

也迟到了,但要在此基础上再接再厉@CodeTalker 的回答:

如果您使用vivim:help cquitvim 中的文档说明

:cq[uit][!] {N}     Quit Vim with error code {N}.  {N} defaults to one.
            Useful when Vim is called from another program:
            e.g., a compiler will not compile the same file again,
            `git commit` will abort the committing process, `fc`
            (built-in for shells like bash and zsh) will not
            execute the command, etc.
            {N} can also be zero, in which case Vim exits
            normally.
            WARNING: All changes in files are lost!  Also when the
            [!] is not used.  It works like ":qall!" |:qall|,
            except that Vim returns a non-zero exit code.

git commit请注意该片段中的调用

相关内容