Git提交失败了Vim和GVim

时间:2010-09-21 21:07:55

标签: git vim

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

Aborting commit due to empty commit message.

根据this question我确定我的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

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

$ git config core.editor
gvim -f

$ git commit
Aborting commit due to empty commit message.

编辑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.

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

5 个答案:

答案 0 :(得分:71)

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

gvim -f

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

尝试:

git config --global --unset-all core.editor
git config --unset-all core.editor
git config --global core.editor "gvim -f"

答案 1 :(得分:6)

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

答案 2 :(得分:4)

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

答案 3 :(得分:0)

我遇到了类似的错误。

运行:wq:q!会退出问题。我已经尝试过其他编辑器(TextMate),在保存并退出该编辑器后,提交将完成。

发现当使用:x关闭文档时,提交将关闭,而不必移动到gvim以及那里所需的所有配置。

摘要 -

:x是我的答案。

答案 4 :(得分:0)

考虑使用vim的fugitive git插件。

您可以直接从(g)vim。

执行最常用的git命令