在Vim上使用git commit -a


111

我是git的新手,所以我决定使用github的教程学习git。第三章说:

“对于第一个示例,我们将修改README文件以将自己添加为项目的作者。因此,我们只需编辑该文件。现在我们要提交更改,因此我们运行git commit -a命令。”

当我使用git commit -a命令时,控制台会打开一个vim并写了我的消息,但是我不知道如何从控制台关闭该vim编辑器。如何保存消息并关闭vim?


9
该图形备忘单非常有用:viemu.com/vi-vim-cheat-sheet.gif。我用它作为我的桌面墙纸。
yasouser 2011年

@Jean-您在什么平台上,并且正在使用控制台或GUI Vim?在开始屏幕上是否没有介绍性文字(版本号,作者等)?
Rook 2012年

Answers:


193
  1. 在vim中,您可以:wEnter在普通模式下保存文件(通过按进入普通模式Esc)。
  2. :q在正常模式下,您可以关闭文件。

您可以结合使用这两种操作,并Esc:wqEnter保存提交并退出vim。

作为上述的替代方法,您还可以ZZ在正常模式下按下,将保存文件并退出vim。对于某些人来说,这也比较容易,因为两次按下相同的键。


24
您也可以执行git commit -a -m“您的消息在这里”,这不会启动VIM。
David Basarab

8
@David:当然。这里有很多这样的问题是因为人们忘记了该-m选项,然后将它们扔进了vim窗口中,却不知道如何退出。
abcd

3
@yoda:您也可以使用ctrl + c进入正常模式。同样,保存并退出时使用Shift +(z + z)(两个大写字母Z)。
火箭危险品

1
@Rocket:你是对的。我不知道自己输入的zZ
abcd

5
@EEva:是的,但是我不希望教给新手,好像他们忘记了一样:,然后他们开始删除字符,然后导致恐慌
2。– abcd

58

不要尝试学习vim,而要使用其他更简单的编辑器(例如,nano)。尽管我喜欢vim,但我认为在这种情况下使用它不是解决方案。要花费很多时间和精力来掌握它。

git config core.editor "nano"

52
那很好笑; nano在Ubuntu上是默认的,我不知道如何保存,所以我用你的命令切换到了vim。
hyperslug 2012年

11

有关说明,请参见此线程:VIM for Windows-如何键入以保存和退出文件?

正如我在那写的:要学习Vimming,您可以使用以下快速参考卡之一:

还要注意如何在Windows上设置与Git一起使用的编辑器?如果您不习惯使用Vim,但想使用另一个编辑器来提交消息。

如果您的提交消息不太长,也可以输入

git commit -a -m "your message here"


尽管这是事实,但不建议这样做
豪尔赫·雷涛

7

更好的问题是:退出vim时如何中断提交?

有两种方法:

  1. :cq 要么 :cquit
  2. 删除提交消息的所有行,包括注释,然后 :wq

无论哪种方式都会给git一个错误代码,因此它将不会继续进行提交。这对于尤其有用git commit --amend


顺便说一句,我记得来自Ham radio的术语。接触开始时,父亲去世后,年轻的埃莉(耶拿·马隆(Jena Malone))向宇宙说“ CQ CQ CQ”。这意味着“呼叫所有电台”。
cdunn2001 '16


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.