git log/show 等替换终端屏幕

git log/show etc. replaces the terminal screen

我最近开始在 iTerm2 上使用 zsh(oh-my-zsh,没有定制)。但是,我在 git loggit show.

中遇到了问题

以前,例如,git log 结果只是终端的一部分,就像 ls -l 结果一样。按 q 键退出 git log 后,结果仍保留在终端屏幕中。我能够轻松地选择一些哈希 ID。

但是,目前的问题是git log(或git show)结果替换了屏幕。因此,在退出 git log 后,终端将所有 git 结果和 returns 完全删除到原始屏幕。这种行为就像 vim.

此行为与 bash 或 Mac 的默认终端应用程序相同。这不是--no-pager.

的问题

如有任何帮助,我们将不胜感激。

你可以试试:

git config --global --replace-all core.pager "less -F -X"

来自"How do I prevent git diff from using a pager?":

passing the -F option to less causes it to quit if the content is less than one screen, however after doing so the screen is reset and you end up not seeing the content, the -X option does away with that behaviour.

oh-my-zsh 使用 -R 标志执行 less,您可以 运行 unset LESS 回退到默认行为。

如果要使此更改持久化,请将此命令输入 .zshrc