我一般都喜欢在git中使用寻呼机,但对于git stash
,寻呼机让我很烦。在调用git stash list
时,我不希望在寻呼机中显示三行输出 - 它会强制我按q
只是为了在输入以下内容时再次使输出不可用{ {1}}命令。
一种解决方案是使用
git stash pop
但那是打字很多(我很懒)。在man page of git config
之后,我尝试了
git --no-pager stash list
但这似乎没有做文件所说的(实际上,我没有注意到任何影响)。然后我试了
git config --global pager.stash false
再次没有任何明显的影响。
配置得到适当更新,例如
git config --global alias.stash "--no-pager stash"
它没有任何效果。我错过了什么?我怎样才能实现git config pager.stash
false
不使用寻呼机?
答案 0 :(得分:30)
从1.7.7.3开始,git config --global pager.stash false
完成了这项工作。
答案 1 :(得分:10)
它看起来像stash,并且任何其他非内置命令(写为shell脚本,而不是C语言)都错过了寻呼机配置步骤。我给git邮件列表发了一条说明,询问了这个问题。它看起来像是一个已知的问题,但并不是完全无关紧要的。
你看到你的别名没有效果的主要原因是git默默地忽略了内置命令的别名;这个想法是你永远不想让命令无法访问。要使别名有可能被运行,您需要将其命名为stash
以外的其他名称。
但是,我认为不允许使用简单的别名来影响运行git命令的环境,这通常包括传递给git
本身的选项。如果我使用像你这样的别名:
git config alias.foo --no-pager stash
git foo
fatal: alias 'foo' changes environment variables
如果你想要正确地做到这一点,你必须使用!git --no-pager stash
,这样它就会产生一个子shell并重新调用git。
另一个临时修复,因为它是一个shell脚本,将直接编辑libexec/git-core/git-stash
。只需找到list_stash
功能,并在--no-pager
调用中添加git log
选项,或覆盖整个脚本,在顶部设置GIT_PAGER=cat
。
答案 2 :(得分:7)
或者,如果屏幕的输出值少于一个,您可以配置less
退出:
export LESS='-F'
或者,详细说明:
export LESS='--quit-if-one-screen'
如果你的git输出中有颜色,你可能还想传递-r
标志:
export LESS='-F -r'
答案 3 :(得分:0)
stll = "!git --no-pager stash list"
是你的朋友。