我正在尝试在Git Immersion的帮助下学习 Git。每当我使用git log
或git diff
时,有一件事使我感到沮丧:
遇到这个(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 个命令中的任何一个。
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
命令将其解冻为后台进程)。