如何退出 git log 或 git diff

我正在尝试在Git Immersion的帮助下学习 Git。每当我使用git loggit diff时,有一件事使我感到沮丧:

Git日志显示(END)标记

遇到这个(END)字时,我不知道下一步该怎么做。我无法键入任何命令,最终我关闭了当前的 Bash 窗口并打开了另一个窗口。如何键入要使用的下一个命令?

答案

您正在使用less程序,该程序使git log的输出可滚动。

键入q退出此屏幕。键入h以获取帮助。

如果您不想在寻呼机中读取输出并希望仅将其输出到终端,则将环境变量GIT_PAGER设置为cat或将core.pager设置为cat (执行git config --global core.pager cat )。

您可以按q退出。

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

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

git --no-pager log --oneline -n 10
  • --no-pager将遇到(END)字
  • -n 10仅显示最后 10 次提交
  • --oneline将显示提交消息,忽略作者,日期信息

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

实际上,有三种方法可以精确地做到这一点。

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

  1. q
  2. z
  3. Ctrl + z

PS:有时候,对于某些人来说,这些选项之一似乎无效,而对于其他人却可行。

我想对提到 CTRL + Z 作为选项的注释表示敬意。归根结底,这将取决于您安装了 Git 的系统以及配置为打开文本文件的程序(例如,相对于 vim 较少)。 CTRL + Z 在 Windows 上适用于 vim。

如果您在 Windows 环境中使用 Git,则会有一些怪癖。只是有助于了解它们是什么。 (即记事本与 Nano 等等)。

在这种情况下,正如一再暗示的那样,键入q是退出git log的预期方式(与大多数其他分页器或使用分页器的应用程序一样)。

但是通常情况下,如果只想中止当前正在执行的命令,则可以尝试ctrl + c (对于git log似乎不起作用)或ctrl + z (尽管在bash 中ctrl-z会冻结当前正在运行的前台进程,然后可以使用bg命令将其解冻为后台进程)。