git 没有特定命令的寻呼机

Posted

技术标签:

【中文标题】git 没有特定命令的寻呼机【英文标题】:git no pager for specific commands 【发布时间】:2013-08-08 12:56:19 【问题描述】:

我意识到您可以使用git --no-pager <command> 来防止输出通过寻呼机运行。我也意识到你可以使用,例如,git config --global core.pager cat

但是有一些命令我确实想自动使用寻呼机,例如diff,以及其他我不知道的地方,例如stash。每次输入--no-pager 效率不如我所愿。

有没有办法为单个命令设置这样的配置?作为替代方案,是否可以在不使用别名的情况下调用stash 时让zsh 自动插入--no-pager

【问题讨论】:

相关,但不重复,因为它只涉及stash,而不是一般的所有命令:Turning off the pager in git for the stash command only。 【参考方案1】:

作为this answer points out,您可以使用pager.stash false关闭stash的分页:

git config --global pager.stash false

更一般地,您可以将pager.<command> 与其他命令一起使用,例如diff

git config --global pager.<command> false
git config --global pager.diff false

来自official Linux Kernel Git documentation for git config

pager.<cmd>

如果该值为布尔值,则在写入 tty 时打开或关闭特定 git 子命令的输出分页。否则,使用pager.&lt;cmd&gt; 的值指定的分页器为子命令打开分页。如果在命令行中指定了--paginate--no-pager,则优先于该选项。要禁用所有命令的分页,请将core.pagerGIT_PAGER 设置为cat

【讨论】:

【参考方案2】:

您可以使用 Git 别名:

git config --global alias.nop-stash "stash --no-pager"

【讨论】:

这似乎不起作用。 stash --no-pager 生成错误,--no-pager stash 抱怨别名更改了环境变量(这实际上是我 想要 做的......嗯 要了解为什么会产生错误,请参阅Turning off the pager in git for the stash command only。

以上是关于git 没有特定命令的寻呼机的主要内容,如果未能解决你的问题,请参考以下文章

如何在 git 命令后在寻呼机中显示输出?

从分支获取最新 Git 提交哈希的命令

Git命令用于检查特定提交的差异

Git changelog:如何将所有更改都添加到特定标记?

git常用命令以及使用技巧整理

玩转git命令