题
我一般喜欢在GIT中使用该寻呼机的,但对于git stash
寻呼机让我很烦。当调用git stash list
,我不想显示三行寻呼机输出的 - 它迫使我按q
刚键入便接踵而来向上git stash pop
命令时使输出再次不可用
的一种解决方案将是使用
git --no-pager stash list
但对很多键入(我懒)。继git config
的手册页,我试过
git config --global pager.stash false
但是这似乎并没有做文件说什么(其实,我没有发现任何影响)。然后我试图
git config --global alias.stash "--no-pager stash"
同样没有任何noticable效果。
的配置被适当地更新,例如
git config pager.stash
false
它只是不具有任何影响。我在想什么?我怎样才能做到这一点git stash
不使用寻呼机?
解决方案
它看起来像藏匿,以及任何其他非内置命令(写为一个外壳脚本,而不是在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和重新调用饭桶。
另外一个临时的解决办法,因为它是一个shell脚本,将直接进入编辑libexec/git-core/git-stash
。只是去找到list_stash
功能,并且--no-pager
选项添加到它的调用git log
,或覆盖整个脚本,集GIT_PAGER=cat
顶部。
其他提示
的1.7.7.3如,git config --global pager.stash false
实现这一目的。
可替换地可以配置less
退出,如果有输出小于相当于一个屏幕的:
export LESS='-F'
或者,冗长:
export LESS='--quit-if-one-screen'
如果您在您的git输出有颜色,你可能也想通过-r
标志:
export LESS='-F -r'
stll = "!git --no-pager stash list"
是你的朋友。