是否有一个命令行开关可以传递给gitdiff和其他默认使用较少寻呼机的命令?我知道这些方法存在:
git diff | cat。。。删除所有语法突出显示gitconfig--global core.pager cat将global.gitconfig中的寻呼机设置为cat导出GIT_PAGER=猫
但我更喜欢命令行开关。
是否有一个命令行开关可以传递给gitdiff和其他默认使用较少寻呼机的命令?我知道这些方法存在:
git diff | cat。。。删除所有语法突出显示gitconfig--global core.pager cat将global.gitconfig中的寻呼机设置为cat导出GIT_PAGER=猫
但我更喜欢命令行开关。
当前回答
我很惊讶我还没有看到这个答案,但很简单:
PAGER= git diff ...
附录A:我使用的是macOS,使用的是zsh,不确定这是否会改变什么。附录B:正如其他人所指出的,如果您想将其用作脚本或不受控制的环境的一部分(可能设置$GIT_PAGER),那么这不是最佳解决方案。
其他回答
您还可以在全局配置中禁用/启用特定输出的寻呼机:
git config --global pager.diff false
或者要设置core.pager选项,只需提供一个空字符串:
git config --global core.pager ''
在我看来,这比你说的那样把它设置成猫要好。
您可以使用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目录,因此,如果您已经位于存储库的子目录中,则对本地文件的任何引用都将不起作用。
如果您在~/.oh-my-zsh/lib/misc.zsh文件中使用oh my zsh,请注释这一行:
env_default 'LESS' '-R'
与此相关,如果设置了默认的寻呼机,并且希望创建使用不同寻呼机的别名,则可以使用-c选项将配置参数仅传递给一个命令。
例如,我将delta配置为我的默认git寻呼机,但我可以像这样创建一个lessdiff git别名,以便在需要使用less的情况下使用。
[alias]
lessdiff = -c core.pager=less diff
我的.gitconfig中有这个hunk,它似乎工作正常(diff和show都禁用):
[pager]
diff = false
show = false