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

标签 git logging

我不知道如何更好地表达这一点。

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

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

最佳答案

git log输出的原因git后不留在终端历史记录中退出的是寻呼程序git用于显示其输出发出 escape sequences切换到备用显示缓冲区以保持主缓冲区不变。这通常是一个有用的功能。

某些寻呼机允许禁用此缓冲区切换。例如,如果寻呼机是 less (类 Unix 系统上的默认设置),您可以设置 LESS shell 配置文件中的环境变量:

export LESS="--no-init"

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

如果寻呼机支持缓冲区切换,但没有办法关闭它,那么唯一的解决办法就是不要为git log使用这样的寻呼机。输出。

将寻呼机切换到其他内容:
$ git config --global core.pager less

或者禁用 git log 的分页:
$ git config --global pager.log false

甚至完全 - 每隔一个 git命令:
$ git config --global core.pager cat

When I run any git log command, it produces an output in a 'window' of its own. I need to hit q to come back to the prompt



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

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

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

关于git - 使 git log 产生命令输出 'inline',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43845851/

相关文章:

git - 尽管有有效的 SSH key ,但无法将 git repo 推送到 Heroku

git - 每个新 Android Studio 项目附带的默认 .gitignore 是否足够好?

git - 无论大小写如何忽略git中的文件扩展名?

java - 我怎样才能让 Log4j2 登录到我的日志文件,我已经尝试了我能想到的一切,这可能是 linux 中的配置问题吗?

python - 如何使用日志记录将日志发送到松弛作为 python 和 flask 中的消息?

python - 在 Python 3 中记录到多个文件

Git 速查表

git - pull 后如何区分更改的文件与以前的版本?

python - 在重新定义 logging.root 时使用 python 'logging' (Kivy)

ruby - 最快的 Ruby 记录器实现是什么?