Git提交失败了Vim和GVim

kaj*_*aco 30 git vim

当我尝试做一个git commit -a,我得到一个很好的vim实例.我键入我的消息,执行:wq,vim关闭,终端有消息,

Aborting commit due to empty commit message.
Run Code Online (Sandbox Code Playgroud)

根据这个问题,我确保我的core.editor说"gvim"(user.editor,fwiw也是如此),但我仍然收到错误消息.

有没有人有另一个想法?

编辑1:我能够通过指定一个文件提交.我的消息太长,无法合理使用-m选项.

编辑2:

$ git config core.editor
vim
error: More than one value for the key core.editor: vim
error: More than one value for the key core.editor: gvim
Run Code Online (Sandbox Code Playgroud)

编辑3: 仍然有相同的问题,即使core.editor排序.还有其他想法吗?

$ git config core.editor
gvim -f

$ git commit
Aborting commit due to empty commit message.
Run Code Online (Sandbox Code Playgroud)

编辑4: 其他错误消息.这就是我所看到的一切.我从原来的问题中排除了几个,因为我已经将它们放在许多机器上,其中没有一个在使用带有git的vim/gvim时遇到问题(当前的除外).在此处显示的情况下,core.editor设置为vim -f.

$ git commit

(gvim:21655): GLib-WARNING **: g_set_prgname() called multiple times

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

** (gvim:21655): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
Aborting commit due to empty commit message.
Run Code Online (Sandbox Code Playgroud)

当core.editor设置为gvim -fI 时, 我得到完全相同的错误消息,除了数字是21641,而不是21655.当我谷歌其中一行时,我得不到匹配(我发现很难相信,但你有).

CB *_*ley 71

如果您正在使用gvim,则需要确保它保持在前台,否则它将在您有机会编辑和保存消息之前将控制权返回给git.将-f开关指定为编辑器设置的一部分应该启用此功能.

gvim -f
Run Code Online (Sandbox Code Playgroud)

您为core.editor设置设置了多个值,这会导致问题.您只需要一个设置.

尝试:

git config --global --unset-all core.editor
git config --unset-all core.editor
git config --global core.editor "gvim -f"
Run Code Online (Sandbox Code Playgroud)


Max*_*y-B 6

使用gvim -f应该是解决方案(适合我),但简单的设置core.editor可能不一定会导致git使用它.要找出实际使用的git ,请运行git var GIT_EDITOR.它应该打印gvim -f.如果没有,请检查man git-var并跳转到GIT_EDITOR变量部分,找出可能覆盖您core.editor设置的内容.


Bri*_*ell 4

您是否在提交消息中为各行添加前缀#?如果是,Git 会将这些视为注释行,忽略它们,并且在您的消息中找不到任何内容。