在单独的终端屏幕上显示git diff和git log输出

4

在设置新的开发环境后,我遇到了一个奇怪的git行为,我不记得以前见过这种情况。

我习惯于使用git diff和git log创建终端中的新屏幕,并在其中显示它们的输出(默认情况下是less,我将其用作我的分页器)。

然后我可以退出并返回到之前的终端状态,命令输出就消失了。然而,现在输出被打印到同一个屏幕上,就像cat一样(但有一个分页器)。有什么办法解决吗?我在网上找不到任何信息。

更新: 通过@torek的帮助,我成功通过将core.pager设置为'less -+F -+X'来解决此问题。

2个回答

2

嗯,看起来确实是这样。但是我该如何关闭这个选项呢?我的 core.pager 设置为 less -F,而 $LESS$GIT_PAGER 环境变量都没有设置。 - dols3m
顺便说一下,我的终端启用了备用屏幕,less本身的行为符合预期。 - dols3m
2
如果 $LESS 没有被设置,Git 会把它设置为 -FRX,以启用这三个选项。例如,您可以将 core.pager 设置为 less -F -+X,或者(我的首选)将 core.pager 设置为 less,并将 LESS 设置为 -FR。后者会影响 less 的其他调用,同时设置 -F-R。 (Git 中 Sneaky 的“if not set”设置不得不说是 Sneaky。) - torek

0
检查环境变量PAGER。这控制着各种程序用于翻页输出的工具。
export PAGER=less
git diff

如果这对您有用,那么您可以根据您的操作系统以不同的方式将其设置为永久环境变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接