是否有一个命令行开关可以传递给gitdiff和其他默认使用较少寻呼机的命令?我知道这些方法存在:

git diff | cat。。。删除所有语法突出显示gitconfig--global core.pager cat将global.gitconfig中的寻呼机设置为cat导出GIT_PAGER=猫

但我更喜欢命令行开关。


当前回答

关于管道时禁用的颜色:

使用--color可避免禁用着色。

git diff—颜色|更少-R

或者强制配置(例如.gitconfig):

[color]
        ui = on

git diff |小于-R

对于非彩色工具,请使用:

gitdiff--无颜色|一些基本工具

导出环境变量LESS=-R(在例如.bashrc中)默认情况下在“LESS”中启用颜色支持:

git diff|更少

其他回答

请遵循以下说明。

只需在终端中键入vi~/.gitconfig。粘贴LESS=“-F-X$LESS”行。按:wq并输入。重新启动终端。

我很惊讶我还没有看到这个答案,但很简单:

PAGER= git diff ...

附录A:我使用的是macOS,使用的是zsh,不确定这是否会改变什么。附录B:正如其他人所指出的,如果您想将其用作脚本或不受控制的环境的一部分(可能设置$GIT_PAGER),那么这不是最佳解决方案。

如果您在~/.oh-my-zsh/lib/misc.zsh文件中使用oh my zsh,请注释这一行:

env_default 'LESS' '-R'

这对我来说在Linux上使用Git版本2.1.4是有效的:

git config --global --replace-all core.pager cat

这使得Git使用cat而不是更少。cat只是将diff的输出转储到屏幕上,而没有任何分页。

您可以使用pager.alias为diff添加一个别名,如下所示:

[alias]
  dc = diff
  dsc = diff --staged
[pager]
  dc = cat
  dsc = cat

这将保持颜色不变,并在“git-dc”调用时使用“cat”作为寻呼机。

此外,不要做的事情:

使用--别名中没有寻呼机。Git(1.8.5.2,Apple Git-48)会抱怨你试图修改环境。使用带有!sh或!吉特。这将绕过上面的环境错误,但它会将您的工作目录(出于本命令的目的)重置为顶级Git目录,因此,如果您已经位于存储库的子目录中,则对本地文件的任何引用都将不起作用。