在显示 'git' 命令结果时禁用 "buffered view"

Disable "buffered view" when display 'git' commands results

我刚刚切换到一个新的(已经配置好的)开发盒。

现在 git 行为有所不同,有一些命令。

让我试着解释一下:

更清楚地说,现在许多 git 命令(difflogreflogshow 等)的行为类似于 vimman,其中命令的输出位于单独的缓冲区中,用户 明确需要退出此视图才能返回 shell .

这是某种 git 配置吗?也许是指定的默认编辑器?或者也许是操作系统设置?

我找不到解决此问题的信息(或搜索信息的正确关键字)。

我希望这对其他人有用(使用非特定搜索关键字更容易找到!)。 解决方案似乎是关于设置 pager of git.

寻呼机是用于显示 git 命令输出的命令。

在我的例子中试图 运行:

git config -l

没有向我展示当前设置的任何证据。但是从以前的版本来看,我只是假设寻呼机的 默认值最近已更改 为与 less 不同的值。 使用新的寻呼机,在按下 Q 后屏幕会被清除,不允许终端缓冲区保持输出结果。

无论如何,我对旧寻呼机更舒服:less,或者根本没有寻呼机。

所以我用命令重置它:

git config --global core.pager ''

这将使用 无分页器 并将始终在 shell 中显示输出,允许您向上滚动和 copy/paste/check git命令输出。 但是 git log 并不好,因为它会向下滚动到列表的末尾并显示最近的提交。

所以完美的解决方案(对我来说)是将它设置为 less但是另外 我必须向它传递一些选项来定义确切的期望行为;所以现在我从顶部显示列表,然后我可以向上滚动并查看我输出的所有内容。

我最后使用的命令是:

git config --global core.pager 'less -FRSX'

(解释为 on the section Better pager defaults of this Atlassian documentation page

这些设置的基本原理是 -X 防止屏幕被清除。虽然 -R 允许保持彩色输出。