是否有一个命令行开关可以传递给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=猫
但我更喜欢命令行开关。
当前回答
请遵循以下说明。
只需在终端中键入vi~/.gitconfig。粘贴LESS=“-F-X$LESS”行。按:wq并输入。重新启动终端。
其他回答
您还可以在全局配置中禁用/启用特定输出的寻呼机:
git config --global pager.diff false
或者要设置core.pager选项,只需提供一个空字符串:
git config --global core.pager ''
在我看来,这比你说的那样把它设置成猫要好。
--Git的任何寻呼机都不会告诉它不要使用寻呼机。如果输出适合单个屏幕,则将选项-F传递给less将告诉它不要分页。
用法:
git --no-pager diff
评论中的其他选项包括:
# Set an evaporating environment variable to use 'cat' for your pager
GIT_PAGER=cat git diff
# Tells 'less' not to paginate if less than a page
export LESS="-F -X $LESS"
# ...then Git as usual
git diff
与此相关,如果设置了默认的寻呼机,并且希望创建使用不同寻呼机的别名,则可以使用-c选项将配置参数仅传递给一个命令。
例如,我将delta配置为我的默认git寻呼机,但我可以像这样创建一个lessdiff git别名,以便在需要使用less的情况下使用。
[alias]
lessdiff = -c core.pager=less diff
默认情况下,git使用less作为寻呼机。我通常更喜欢,因为它会打印第一页,然后允许您滚动浏览内容。
此外,完成后,内容将保留在控制台中。这通常很方便,因为您通常希望在查找后对内容进行一些处理(例如,给commiter发电子邮件,告诉他他在上次提交时引入了一个bug)。
如果您想通过管道传输内容,滚动打印所有内容将很不方便。更多的好处是你可以将它与管道结合起来,它将贯穿一切,例如。
# Find the commit abcdef123 in the full commit history and read author and commit message
git log |grep -C 5 'abcdef123'
基本上,更多的内容是您所需要的,除非您不希望内容在完成后保留在控制台中。要使用更多,请执行以下操作。
git config --global core.pager 'more'
Use
git config --global core.pager cat
为所有存储库删除所有命令的寻呼机。
您还可以使用寻呼机禁用单个Git子命令的分页<cmd>setting而不是core.pager,并且您可以更改每个Git存储库的设置(省略--global)。
请参阅man git配置并搜索寻呼机<cmd>了解详细信息。