使用 git commit -a 和 vim
Posted
技术标签:
【中文标题】使用 git commit -a 和 vim【英文标题】:Using git commit -a with vim 【发布时间】:2011-08-31 05:19:52 【问题描述】:我是 git 新手,所以我决定使用 github 的教程来学习 git。第三章说:
“对于第一个示例,我们将修改 README 文件以将自己添加为项目的作者。所以我们只需编辑文件。现在我们要提交该更改,因此我们运行
git commit -a
命令。”
当我使用git commit -a
命令时,控制台打开了一个vim,我写了我的消息,但我不知道如何从控制台关闭这个vim 编辑器。如何保存消息并关闭 vim?
【问题讨论】:
这个图形备忘单非常有用:viemu.com/vi-vim-cheat-sheet.gif。我用它作为我的桌面壁纸。 @Jean - 你在哪个平台上,你在使用控制台还是 GUI Vim?开始屏幕上没有介绍性文字(版本号、作者等)吗? 【参考方案1】:更好的问题是:我退出 vim 时如何中断提交?
有两种方式:
:cq
或 :cquit
删除提交信息的所有行,包括cmets,然后:wq
无论哪种方式都会给 git 一个错误代码,因此它不会继续提交。这对git commit --amend
尤其有用。
【讨论】:
顺便说一句,我从业余无线电术语中记住了这一点。在联系的开头,在她父亲去世后,年轻的艾莉(Jena Malone)告诉宇宙,“CQ CQ CQ”。这意味着,"Calling all stations."【参考方案2】:-
在 vim 中,在普通模式下使用 :wEnter 保存文件(按 Esc)。
您在正常模式下使用 :q 关闭文件。
您可以结合这两个操作并执行 Esc:wqEnter 保存提交并退出 vim。
作为上述的替代方法,您也可以在正常模式下按 ZZ,这将保存文件并退出 vim。这对某些人来说也更容易,因为它是按两次相同的键。
【讨论】:
你也可以执行 git commit -a -m "your message here" 不会启动 VIM。 @David:当然。这里有很多这样的问题是因为人们忘记了-m
选项,然后被扔进了一个vim窗口并且不知道如何出去。
@yoda:你也可以使用 ctrl+c 进入普通模式。还有就是 Shift+(z+z) 保存和退出(两个大写的 Z)。
@Rocket:你是对的。我没有意识到我输入的是z
而不是Z
。
@EEva:是的,但我不想教新手,好像他们忘记了:
,然后他们开始删除字符,然后导致恐慌2。跨度>
【参考方案3】:
与其尝试学习 vim,不如使用其他更简单的编辑器(例如 nano)。 尽管我很喜欢 vim,但我不认为在这种情况下使用它是解决方案。掌握它需要奉献精神和时间。
git config core.editor "nano"
【讨论】:
这很有趣; nano 是 Ubuntu 的默认设置,我不知道如何保存,所以我使用你的命令切换到 vim。【参考方案4】:要退出点击 :q 会让你退出。
如果你想退出而不保存,你可以点击 :q!
在“vim cheatsheet”上的谷歌搜索可以为您提供一个参考,您应该使用一系列快速快捷方式打印出来。
http://www.fprintf.net/vimCheatSheet.html
【讨论】:
【参考方案5】:请参阅此线程以获得解释:VIM for Windows - What do I type to save and exit from a file?
正如我在那里写的:要学习 Vimming,您可以使用其中一张快速参考卡:
http://bullium.com/support/vim.html http://tnerual.eriogerg.free.fr/vim.html如果您不习惯使用 Vim 但想为您的提交消息使用其他编辑器,请注意 How can I set up an editor to work with Git on Windows?。
如果你的提交信息不是太长,你也可以输入
git commit -a -m "your message here"
【讨论】:
你也可以按照这个答案退出vim ***.com/questions/6098742/using-git-commit-a-with-vim/… 虽然这是真的,it is not advisable.【参考方案6】:尝试ZZ
保存并关闭。
Here is a bit more info 在 Git 中使用 vim
【讨论】:
以上是关于使用 git commit -a 和 vim的主要内容,如果未能解决你的问题,请参考以下文章
如何用git reflog和git cherry-pick找回已删除的commit记录
git使用总结(包含git commit message 和 changelog 工具的介绍)