使git log产生命令输出'inline'

des*_*ukh 3 git logging

我不知道该怎么说。

当我运行任何git log命令时,它都会在自己的“窗口”中产生输出。我需要按q返回提示,然后所有日志显示都消失了。

有什么方法可以产生日志输出“内联”,以便在日志输出后显示提示?

小智 15

使用以下命令:

git log | cat
Run Code Online (Sandbox Code Playgroud)

git log 的输出将通过 cat 显示在终端上。


eus*_*h77 7

退出git log后输出的结果没有保留在终端历史记录中的原因git是,寻呼机程序git用来显示其输出时发出转义序列,以切换到备用显示缓冲区以保持主缓冲区完整。这通常是一个有用的功能。

一些寻呼机允许禁用此缓冲区切换。例如,如果分页器为less(在Unix-like系统上为默认分页器),则可以LESS在shell配置文件中设置环境变量:

export LESS="--no-init"
Run Code Online (Sandbox Code Playgroud)

-X, --no-init默认情况下,这将打开选项(然后可以通过-+X命令行上的开关将其关闭)。结果是的输出git log将被写入主缓冲区,结果将保留在终端历史记录中。

如果寻呼机支持缓冲区切换,但没有办法将其关闭,则唯一的解决方案是不使用此类寻呼机进行git log输出。

将寻呼机切换到其他位置:

$ git config --global core.pager less
Run Code Online (Sandbox Code Playgroud)

或为禁用分页git log

$ git config --global pager.log false
Run Code Online (Sandbox Code Playgroud)

或什至完全是其他git命令:

$ git config --global core.pager cat
Run Code Online (Sandbox Code Playgroud)

当我运行任何git log命令时,它都会在自己的“窗口”中产生输出。我需要点击q以返回提示

至于问题的这一部分,我想说的是,您实际上并不希望git log每次运行时都将兆字节的输出溢出到终端中git log。寻呼机为您提供的功能通常非常有用:滚动,搜索,跳转,更改文件,运行命令等。

您可能想要的是绕过寻呼机以获得短输出。git不提供此功能,但某些传呼机提供。例如,如果使用less,则可以在shell配置中-F, --quit-if-one-screenLESS环境变量添加选项:

export LESS="--no-init --quit-if-one-screen"
Run Code Online (Sandbox Code Playgroud)

less如果整个输出可以显示在单个屏幕中,这将自动退出。