我正在使用Git Bash并且在尝试输入'git commit -a'时发生的事情。
看起来VIM打开了编辑我的提交消息但是如何保存并实际完成此提交?我输入编辑器并按Enter键,但它只是创建了另一行。
仅供参考:我在Mac上使用VM Fusion,因此我的一些密钥可能会有所不同
答案 0 :(得分:42)
这是一个关于VIM的问题而不是git本身(如果我没有记错的话)
VIM使用多种模式,退出插入模式,按ESC或^ C.要保存并退出文件,请使用ZZ
,:x
或:wq
只是为了完成:git commit -a
将首先将所有跟踪和更改的文件内容添加到索引中,然后创建一个提交(在vim中指定提交消息后 - 或者您选择的编辑器)
答案 1 :(得分:26)
离开VIM(命令模式 - > :wq
)。
-a
标志的作用类似于:
git add -u
git commit ...
-m
标志指定提交消息。该消息是必需的,因此如果您没有传递(git commit -m "My message"
),将打开默认文本编辑器(您可以在git配置中更改它)并且您必须编写提交消息,然后保存并退出编辑。
答案 2 :(得分:14)
要保存您的提交,请像平常一样保存并退出文件。
:wq
如果你改变主意并希望中止退出而不保存。
:q!
您不必使用VIM,但您可以设置编辑器,例如以下内容会将编辑器git用于textmate。
git config --global core.editor textmate
答案 3 :(得分:3)
正如其他人所说,Vim正在打开,因此您可以添加一条消息,其中包含您正在提交的更改的相关信息。看来您系统上的默认编辑器是Vim。设置Git,以便在使用:wq,:x或其他命令关闭Vim后,它将包含您键入的任何消息并保存在Vim中。
除了Andrew Myers建议更改Git调用的编辑器之外,您还可以在命令行中包含一条简单的消息,如下所示:
git commit -am 'This is my message for the commit. . . '
如果你这样做,Git根本不会打开文本编辑器。