2012-02-28 349 views
464

我正在试着在Git Immersion的帮助下学习Git。有一两件事,每当我用git loggit diff那让我很沮丧:如何退出git log或git diff?

Git log shows (END) marker

我无法弄清楚下一步该怎么做,当我遇到这种(END)字。我无法输入任何命令,并最终关闭当前的bash并打开另一个。如何输入我想要使用的下一个命令?

+16

天哪,这个问题很难谷歌,我已经要问自己。谢谢你,larsmans! – lonelyass 2012-09-28 08:12:45

+11

即使在我使用q + Enter退出后,每次再次开始输入时,都会再次出现。它吃掉了我的第一个字符。此后,我可以输入我想要的命令。但是,我宁愿没有这种行为。我在Windows上。建议? – 2014-11-09 17:10:06

+3

Windows用户:您必须先输入q + Enter。一旦你用cntl + c逃跑,你会陷入那个奇怪的循环。仅使用q + enter退出。 – STWilson 2016-11-25 17:31:34

回答

684

您在less程序中,这使得git log的输出可滚动。

类型q退出此屏幕。输入h即可获得帮助。

如果你不想读寻呼机输出,并希望它只是打印到终端定义环境变量GIT_PAGERcat或设置core.pagercat(执行git config --global core.pager cat)。

+1

我一直在按q键,就像人们会离开vi一样!谢谢! – TastyCode 2013-08-13 19:55:42

+1

@Affan:要退出vi,请使用':q'。 'q:'打开一个可以用':q'退出的命令窗口(但这不会退出vi)。 – 2013-08-26 22:53:52

+5

简单的方法来避免一次寻呼机:“git log | cat”。我也喜欢做“git log>/tmp/foo”,然后在我选择的编辑器中查看/ tmp/foo。出于某种原因,这对我更好。 – 2014-05-16 16:01:44

17

END来自用于显示日志的传呼机(您当时仍在其中)。键入q退出它。

21

您可以按q退出。

git hist正在使用寻呼机工具,因此您可以在返回到控制台之前上下滚动结果。

9

实际上,有三种方法可以做到。

键入以下3个命令中的任何一个。

  1. :Q
  2. 位:Z
  3. CTRL + Z

P.S .:有时候,对于某些人来说,其中一个选项似乎不起作用,而对于其他人来说它起作用。

2

我想给一些评论,提到CTRL + Z作为一个选项的荣誉。在这一天结束时,它将取决于你安装了什么系统,以及哪些程序配置为打开文本文件(例如vim和vim)。 CTRL + Z适用于Windows上的vim。

如果你在Windows环境中使用Git,有一些怪癖。只是有助于了解他们是什么。 (即记事本vs.纳米等)。

17

在中添加以下别名。在.bashrc文件

git --no-pager log --oneline -n 10 
  • --no-pager会遇到(END)字
  • -n 10将只显示最后的10款
  • --oneline将显示提交信息,忽略了作者,日期信息
+0

'git - no-pager'是我寻找的东西,谢谢! – Zapko 2017-07-04 19:57:44

2

在这种情况下,如同暗示的那样,打字q是退出的目标方式git log(与大多数使用寻呼机的其他寻呼机或应用程序一样)。

但是通常情况下,如果你只是想中止当前正在执行的命令,你可以尝试CTRL + C(似乎并没有然而,为git log作品),或CTRL + Z(虽然在bashctrl-z将冻结当前运行的前台进程,然后可以使用bg命令将其解冻为后台进程)。