git log 的行为就像 less

Chr*_*ohl 3 windows-7 bash git mingw

git log -{n},当-n足够小时,不会在less其中打开只是将其打印到屏幕上。这是可取的。 git log -1不应该占满屏幕。

不幸的是,在 MINGW 的 bash shell 中,在我运行了一个非 git 命令之后,git log表现得好像我已经运行了它less并推送了q. (换句话说,数据被打印到屏幕的底部,最后我在顶部有一堆空白)。

假想演示(请原谅它的长度):

>> clear









>> git log -1




commit 123123...
Author: CPfohl
Date: {today}
    {Message}

>> git log -1
commit 123123...
Author: CPfohl
Date: {today}
    {Message}
Run Code Online (Sandbox Code Playgroud)

无论我之前执行什么 git 命令git log,只要git log -{n}git 命令之后,这都有效。

这是一个错误,还是有办法让它正常运行?

小智 5

如果您想为某些/所有 git 命令禁用分页,您可以:

  • 将配置值(pager.<cmd>core.pager所有命令)设置为cat
  • 使用--no-pager选项

但也许我没有理解你的问题。通过less在上述配置选项中设置适当的分页命令(带有一些选项),可能会更改所描述的行为。

  • --no-pager 选项就像一个魅力!但似乎需要在“登录”之前提供 --no-pager 才能使其工作。您应该更新答案以澄清这一点。"git log ... --no-pager" 不起作用,而 "git --no-pager log ..." 起作用。 (5认同)