git commit -a confusion

Sle*_*lee 30 git vim

我正在使用Git Bash,并且当我输入'git commit -a'时我想弄清楚发生了什么.

看起来VIM打开来编辑我的提交消息但是如何保存并实际完成此提交?我输入编辑器并按Enter键,但它只是创建另一行.

仅供参考:我在Mac上使用VM Fusion,因此我的一些按键可能会有所不同

kni*_*ttl 42

这是一个关于VIM的问题而不是git本身(如果我没弄错的话)

VIM使用多种模式,退出插入模式,按ESC或^ C. 保存并退出文件使用ZZ,:x:wq

只是为了完成:git commit -a首先将所有跟踪和更改的文件的内容添加到索引,然后创建一个提交(在vim中指定提交消息后 - 或者您选择的编辑器)

  • 你刚刚为我解决了一个小时的头痛..哈哈谢谢.ESC做了伎俩;) (3认同)

Cro*_*zin 26

离开VIM(命令模式 - > :wq).

-a 旗帜的作用如下:

git add -u
git commit ...
Run Code Online (Sandbox Code Playgroud)

-mflag指定提交消息.该消息是必需的,因此如果您不传递(git commit -m "My message"),将打开默认文本编辑器(您可以在git配置中更改它),您将必须编写提交消息,然后保存并退出编辑器.

  • -1"刚离开vim"可能是有史以来最无益的指令.你不妨告诉Minotaur"离开迷宫" (19认同)
  • `git commit -a`不像`git add .`那样工作,它就像`git add -u` (5认同)
  • "然后保存并退出编辑器"注意:退出编辑器会保存提交消息. (2认同)

asm*_*asm 14

要保存您的提交,您可以像平常一样保存并退出文件.

:wq

如果你改变了主意并希望中止,你就退出而不保存.

:q!

您不必使用VIM,您可以设置编辑器,例如以下内容会将编辑器git用于textmate.

git config --global core.editor textmate