使用 Vim 输入 Git 提交消息的问题

Posted

技术标签:

【中文标题】使用 Vim 输入 Git 提交消息的问题【英文标题】:Problems with entering Git commit message with Vim 【发布时间】:2011-08-01 17:32:10 【问题描述】:

操作系统:Windows

我写

$ git commit

然后

"#请输入提交信息"

我写了一些文字,比如

“添加了表单验证”

按 Enter 并没有提交。然后我按 Shift+Enter、Ctrl+Enter、Alt+Enter - 仍然没有提交。

我认为这是愚蠢的麻烦,但我必须做什么?

【问题讨论】:

没问题。但是您的问题可能会在 Super User 上得到更好的关注,对于这种类型的非编程问题来说,这更受关注:superuser.com/questions/tagged/git 【参考方案1】:

如果是windows的vim,可以这样做:

按照提供的指南输入您的信息 按 Esc 确保您退出插入模式 然后输入:wqEnterZZ

请注意,在 VIM 中,通常有几种方法可以做一件事。不过这里有一点不同。 :wqEnter 总是在关闭当前文件之前写入当前文件,而ZZ:xEnter:xiEnter、@ 987654328@Enter:exiEnter:exitEnter 仅在文档​​被修改时才写入。 所有这些同义词只是按键次数不同。

【讨论】:

链接:What to do after typing in commit message for git? 当我输入 :wq 时,我看到以下消息,".git/COMMIT_EDITMSG" 54L, 2316C 写了 Aborting commit due to empty commit message。 确保您已添加消息。当提示输入“我的消息”之类的内容时(你将进入 --insert 模式——我假设,按 esc 离开它)。完成后退出插入模式,然后输入“ZZ”(大写 ZZ) 为什么,这是谁想出来的? :wq Enter 或 ZZ 听起来很疯狂。 i 命令开始插入消息文本非常有用。感谢@Matt Greer 的那个。这个答案对其余步骤很有用。【参考方案2】:

我假设您使用的是 msys git。如果你是,弹出来写你的提交信息的编辑器是 vim。 Vim 一开始并不友好。您可能更喜欢切换到其他编辑器。如果您想使用其他编辑器,请查看此答案:How do I use Notepad++ (or other) with msysgit?

如果您想使用 vim,请输入 i 以输入您的消息。开心的时候按ESC。然后输入:wq,git就会开心了。

或者直接输入git commit -m "your message here" 完全跳过编辑器。

【讨论】:

vim 曾经友好吗?还是人们只是习惯了它的不友好? 一旦你了解了vim的工作原理,它就会变得友好。这实际上非常合乎逻辑且经过深思熟虑。 如果我想在提交消息中使用需要转义的字符(例如撇号),我总是使用 vim 编辑器,因为它不那么烦人。否则我几乎总是把提交信息写成提交命令的一部分。 当您需要修改提交消息时,这很棒【参考方案3】:

您是否尝试过: git commit -m "这里留言"

所以在你的情况下:

git commit -m "Form validation added"

当然是在您添加文件之后。

【讨论】:

你的变种很好。但我想走我写的路(谷歌翻译) 别担心,我忘了那个命令后面还有一个编辑器。我很少只做 git commit 没有 -m "Message"【参考方案4】:

通常,git commit 会打开一个交互式编辑器(在 Linux 上,可能还有 Cygwin,由 $EDITOR 环境变量的内容决定)供您编辑提交消息。当您保存并退出时,提交完成。

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

【讨论】:

【参考方案5】:

您可以将注释字符更改为 # 之外的其他内容,如下所示:

git config --global core.commentchar "@"

【讨论】:

以上是关于使用 Vim 输入 Git 提交消息的问题的主要内容,如果未能解决你的问题,请参考以下文章

每当我们创建提交时,git 可以在第 N 行打开 vim 编辑器吗?

如何处理git每次提交都输入密码

在hg提交消息上设置textwidth?

怎样解决Ubuntu系统中git每次提交都要输入密码

git修改提交信息

Ubuntu系统中git每次提交都要输入密码怎么办