如何在 Git 中退出文本窗口?

321

我正在使用Windows,提交代码之前,Git要求我输入一条文本消息,并出现了一个新的文本窗口。

屏幕截图

我该如何退出这个窗口?

我正在学习Git,所以非常感谢您的帮助。


1
可能是Git提交请求评论的重复问题。 - Cascabel
五年过去了,作为一个著名问题,您是否想要接受一个答案? - aaron
8个回答

304

由于你正在学习Git,需要知道这与Git关系不大,而是与配置的文本编辑器有关。在vim中,您可以按下i开始输入文本,并通过按esc:wqenter保存,这将使用您输入的消息进行提交。在当前状态下,如果只是退出而不提交,您可以使用:q而不是上述提到的:wq

或者,您也可以直接执行git commit -m '<message>',而不是让git打开编辑器来输入消息。

请注意,您也可以更改编辑器并使用您熟悉的工具(例如记事本)- 如何在Windows上设置编辑器以与Git一起使用?


我建议将编辑器设置为您最喜欢的编辑器。然后在合适的情况下使用命令行版本(git commit -m '...'),或者让它在不合适的情况下启动您的编辑器(TextMate,Notepad,无论哪个)。 - Gal
2
按下esc键,然后输入:wq并按回车,非常好。 - Suhail Mumtaz Awan

83

在 Git 需要你输入信息时,会使用一个默认文本编辑器。默认情况下,Git 使用系统的默认编辑器,通常是 ViVim。在你的情况下,Git 选择了 Vim。了解如何选择另一个编辑器,请参见如何让 Git 使用我选择的编辑器进行提交?

在离开Vim之前,您需要输入一条消息:

O

…将为您开始一行新的输入。

要退出 (g)Vim,请按以下方法:

EscZZEsc:wqReturn

值得学习 Vim,因为你几乎可以在任何平台上使用它来编辑文本。我推荐使用Vim Tutor,我在许多年前就用过它,从未回头过(几乎每天都会用 Vim)。


1
很难看出'O'是大写还是小写。小写的'o'会导致消息被写在第二行。 - johnny
我猜这取决于你的字体。希望它所超链接到的文档能够澄清歧义。 - johnsyweb
值得了解vim,这样您就可以从默认使用它的各种应用程序中退出它。 - djechlin
在Inteliji Idea中,如果你将Git设置为终端逃逸键,它会将焦点从终端切换到代码编辑器,因此提交仍然处于编辑模式,毫无用处。 - user924

60

那是 vi 编辑器。尝试按下 ESC 然后输入 :q!


6
实际上,它是Vim(请看标题栏)。 - hammar
它一直工作正常,但现在总是处于插入模式,我按ESC键但没有任何变化!它仍然编辑提交。 - user924
如果你将它添加为IntelliJ Idea的终端,它可能无法正常工作。有时候使用CTRL + ESC可以解决问题,但有时会完全关闭vim,导致你不得不中止rebase操作,因为它无法继续进行。 - user924

17

对于使用Git Bash的VIM和VI,这在Windows 10上对我奏效了。

"Esc" + ":wq!"
或者
"Esc" + ":q!"

14

在Windows上,我使用了以下命令

:wq

由于提交信息为空,它会中止先前的提交


按下键盘上更好的 Esc 键。 - A.R.SEIF
你可以开始输入,直到退出编辑模式,使用git作为终端时,IntelliJ Idea非常直观。 - user924

9

第一种类型

 i

输入提交信息,然后按下ESC键,然后输入。

 :wq

保存提交信息并退出。 或键入

 :q!

放弃保存信息。

感谢您提供精确的答案。 - essbee

0
在Windows上,只需按键盘上的“q”即可退出此屏幕。我是在DOS提示符下使用“!help”或简单地使用“help”和“enter”阅读帮助时得到的。
编程愉快 :-)

-1

尝试

:wq

它适用于 Windows 10 和 Windows 11


其他答案已经涵盖了这个问题。我不明白你的回答有什么补充... - Dada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接