如何禁用 git pager 但仅针对某些命令?

Cap*_*ack 21 git

git log例如,我喜欢启用寻呼机,但这不是git diff因为我有自己的可视化差异工具,而且我讨厌在差异完成后在命令行中点击“q”。有没有办法做到这一点?

Chr*_*sen 33

您可以设置pager.diff配置变量以禁用特定子命令的寻呼机。看到pager.<cmd>GIT-配置(1)

git config --global pager.diff false
Run Code Online (Sandbox Code Playgroud)

--global如果您只想对当前存储库进行此配置更改,请省略。

  • 禁用特定调用:`git -c pager.diff=false log ...`。 (4认同)
  • @mjs 我认为更简单的方法是“git -P diff”。请参阅 [-P 文档](https://git-scm.com/docs/git/2.35.0#Documentation/git.txt--P) (2认同)

小智 8

只需添加| cat到通话末尾即可git。这会欺骗git将整个内容转储为标准输出(因为不再交互)。

例如

git diff --stat | cat
Run Code Online (Sandbox Code Playgroud)

遗憾的是,作为副作用,您将失去输出中的颜色,但您可以通过在 ,--color之前添加来强制它| cat,产生:

git diff --stat --color | cat
Run Code Online (Sandbox Code Playgroud)