我一般喜欢在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"

是你的朋友。

scroll top