Git提交由vi丢失的消息

时间:2014-03-27 21:29:56

标签: git vim

我是一个笨拙的打字员,我不经常使用vi / vim,但我确实用它来提交消息。但是,如果在编辑提交消息(:Wq,而不是:wq)时键入错误的命令,则在使用:wq或{{vim'正确关闭提交消息时1}},你明白了:

:x

通常情况下,像error: There was a problem with the editor 'vi'. Please supply the message using either -m or -F option. 这样的错误命令没有问题 - vim只是忽略了它,你可以继续使用该文件并保存它,但是一旦我输入错误就在git提交消息中,我已经不可避免地丢失了提交消息。

这里发生了什么,我该如何解决? (使用git 1.9.1通过自制程序,vim 7.3与OS X 10.9一起打包)

2 个答案:

答案 0 :(得分:28)

您应该将vim设置为不与shell分离并位于前台。您可以使用以下命令执行此操作:

git config --global core.editor vim -f

来自男人:

   -f          Foreground.  For the GUI version, Vim will not fork and detach from the shell it
               was  started in.  On the Amiga, Vim is not restarted to open a new window.  This
               option should be used when Vim is executed by a program that will wait  for  the
               edit  session  to  finish (e.g. mail).  On the Amiga the ":sh" and ":!" commands
               will not work.

答案 1 :(得分:-1)

正如几篇文章所述,vim正在退出,退出代码不是零。您可以通过明确地将git编辑器设置为完整的vim路径来修复它:

git config --global core.editor /usr/bin/vim

如果我没记错的话,我通过安装自制的vim解决了这个问题。确保您的路径设置正确。