在Vim中输入Git提交消息的问题


146

操作系统:Windows

我写

$ git commit

然后

“#请输入提交消息”

我写一些文字,例如

“添加了表单验证”

按Enter而不提交。然后我按Shift + Enter,Ctrl + Enter,Alt + Enter-仍未提交。

我认为这是愚蠢的麻烦,但是我该怎么办?


没问题。但是您的问题可能会在“超级用户”上得到更好的关注,对于此类非编程问题,该问题更具话题性:superuser.com/questions/tagged/git
bzlm 2011年

Answers:


232

如果是Windows的VIM,则可以执行以下操作:

  • 按照提示输入您的信息
  • 按下Esc以确保您退出插入模式
  • 然后输入:wqEnterZZ

请注意,在VIM中,通常有几种方法可以做一件事情。但是这里有一些细微的差别。:wqEnter始终关闭它,而在此之前写入当前文件ZZ:xEnter:xiEnter:xitEnter:exiEnter并且:exitEnter仅当文档被写修改
所有这些同义词都具有不同数量的按键。



1
当我输入时,:wq我看到以下消息,“。git / COMMIT_EDITMSG” 54L,2316C写入由于空提交消息而中止提交。
卡纳2013年

确保您已添加一条消息。当出现提示时,键入类似“我的消息在这里”的内容(您将进入--insert模式,我想按esc离开)。完成操作后,退出插入模式,然后输入“ ZZ”(大写ZZ)
Kpmurphy91 2013年

22
为什么,谁想到了这个?:wq输入或ZZ听起来很疯狂。
dezman 2013年

1
i开始插入消息文本的命令非常有用。感谢@Matt Greer所做的那件事。对于其余步骤,此答案都很好。
ps2goat

47

我假设您正在使用msys git。如果是这样,弹出来编写您的提交消息的编辑器就是vim。Vim最初并不友好。您可能希望切换到其他编辑器。如果要使用其他编辑器,请查看以下答案:如何将Notepad ++(或其他)与msysgit一起使用?

如果要使用vim,请键入i以输入消息。开心的时候打ESC。然后输入:wq,然后git将很高兴。

或者只是键入git commit -m "your message here"以完全跳过编辑器。


16
vim 曾经友好吗?还是人们只是习惯了它的不友好?
Ryan Lundy

8
一旦了解它的工作原理,vim就很友好了。实际上,这是非常合乎逻辑且经过深思熟虑的。
Matt Greer

如果我想在提交消息中使用需要转义的字符(例如,撇号),我将始终使用vim编辑器,因为它不会那么令人讨厌。否则,我几乎总是将提交消息作为commit命令的一部分编写。
David DeMar

当您需要修改提交消息时,这非常好
-shinzou

15

您是否尝试过:git commit -m“消息在这里”

因此,在您的情况下:

git commit -m "Form validation added"

当然,添加文件之后。


1
您的变体很好。但我想走我写的路(google Translator)
2011年

不用担心,我忘记了该命令之后有一个编辑器。我很少做没有-m“ Message”的git commit
Tony,

1

通常,git commit启动一个交互式编辑器(在Linux以及Cygwin上,取决于您的内容$EDITOR环境变量),供您编辑提交消息。保存并退出时,提交完成。

您应确保将要提交的更改已添加到Git索引中。这确定了提交的内容。有关详细信息,请参见http://gitref.org/basic/


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.