如何禁用 git 中的寻呼机,仅针对具有仅名称选项的差异?

How to disable pager in git only for diff with name-only option?

我需要 git diff 使用寻呼机,而 git diff --name-only 不需要。

已经尝试 git config --global pager.diff.name-only false 但没有成功。

所需的行为类似于 git --no-pager diff --name-only。但是我不想每次都输入--no-pager

是否有任何配置或别名可以做到这一点?

您可以创建一个别名:

[alias]
    ndiff = !git --no-pager diff --name-only

然后 运行 git ndiff 而不是 git diff --name-only。或者,将 --no-pager 部分保留在别名和 运行 git ndiff --name-only 之外,其中 ndiff 代表 no-pager-diff。

或者,您可以 运行 git diff-treegit diff-filesgit diff-index 而不是 git diff。这三个命令是 管道命令 后端,git diff 用于(大部分)其各种操作模式。 None 其中使用寻呼机,其中大多数需要额外的选项(例如,-r)才能像 git diff 运行 一样使用它们,但它们确实存在并且是编写 脚本 的正确方法。对于您自己的别名,无需使用管道命令;你自己的别名可以调用 git --no-pager diff <options>.