在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:你是对的。我不知道自己输入的z是Z。
— 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.