msysGit:为什么git log会输出空白行?

3
似乎越靠近终端窗口底部,插入的空行就越少。如果我在终端窗口顶部输入命令,则会插入几乎整个窗口高度的空行;如果我在最底部输入,则不会插入任何空行。
看起来分页程序将输出推到了终端窗口底部,但我希望输出位于我的命令正下方或顶部,就像在Linux git中一样。
我可以通过使用 git --no-pager log 来获得预期的行为,但如果我想使用分页程序呢?

这可能只是 Windows 中的分页器或终端的产物吗?(分页器肯定被调用了,对吧?) - Cascabel
据我所知,是的。如果我使用--no-pager,则输出不同。msysGit在其bin\文件夹中有一个less.exe,但它似乎与Linux版本的“less”(如果调用了分页器)不同。 - xofz
2个回答

3

补充一些元素:

msysgit在一年�(2009年中期)就已�讨论了替代�制�的问题,问题29(mintty,但仅适用�cygwin,��窗�I/O)。

问题369�到了选项“git config pager.log off���用“log�的分页,这�以为OP所�到的�些类似情况�供便利。

一个类似的问题正在问题484中讨论(正如SO用户kusma在评论中指出的那样 😉)

我�以��这个问题,但我�认为这是git本身的问题。这是分页器; msys上的less存在一些严�问题。一些关�less的�验表�罪�祸首似�是-R标志:

$ git --no-pager diff --color=always HEAD~1 TestSegmentedText.java | less -R

谢谢引用我的话;)无论如何,是的。如果 less -R 在这种情况下也是罪魁祸首,检查它绝对是值得的。如果是这样,我们预计很快就会在“devel”中修复它。 - kusma
@kusma:嗨,Kusma!我没意识到你也是一个SO用户 :) 我已经编辑了答案以添加适当的归属。 - VonC

1

这就是分页器的行为。默认情况下,Git 输出会通过一个分页器进行管道传输,该分页器的行为方式与您所描述的相同。(您可以尝试找到另一个符合您要求的分页器,并将其用作您的分页器。)


在Linux中似乎不是这种情况 - 例如,我可以使用git log --grep = ...并使用仅匹配一个提交的模式,它似乎会调用分页器(我得到(END)并且必须按q),但不会占用整个终端。说实话,我不确定它是如何工作的。 - Cascabel

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