Sve*_*ach 25 git git-stash pager
我一般都喜欢在git中使用寻呼机,但git stash寻呼机让我烦恼.在调用时git stash list,我不希望在寻呼机中显示三行输出 - 它会强制我按下q以便在键入folow-up git stash pop命令时再次使输出不可用.
一种解决方案是使用
git --no-pager stash list
Run Code Online (Sandbox Code Playgroud)
但这是打字很多(我很懒).在手册之后git config,我试过了
git config --global pager.stash false
Run Code Online (Sandbox Code Playgroud)
但这似乎没有做文件所说的(实际上,我没有注意到任何影响).然后我试了一下
git config --global alias.stash "--no-pager stash"
Run Code Online (Sandbox Code Playgroud)
再次没有任何显着的影响.
例如,配置得到适当更新
git config pager.stash
false
Run Code Online (Sandbox Code Playgroud)
它没有任何影响.我错过了什么?我怎样才能实现git stash不使用寻呼机?
Cas*_*bel 10
它看起来像stash,并且任何其他非内置命令(写为shell脚本,而不是C语言)都错过了寻呼机配置步骤.我给git邮件列表发了一条说明,询问了这个问题.它看起来像是一个已知的问题,但并不是完全无关紧要的.
你看到别名没有效果的主要原因是git默默地忽略了内置命令的别名; 这个想法是你永远不想让命令无法访问.为了使别名有可能被运行,你需要将其命名为stash.
但是,我认为不允许使用简单的别名来影响运行git命令的环境,这通常包括传递给git自身的选项.如果我使用像你这样的别名:
git config alias.foo --no-pager stash
git foo
fatal: alias 'foo' changes environment variables
Run Code Online (Sandbox Code Playgroud)
如果你想正确地做到这一点,你必须使用!git --no-pager stash它,以便它产生一个子shell并重新调用git.
另一个临时修复,因为它是一个shell脚本,将libexec/git-core/git-stash直接编辑.只需找到该list_stash功能,并将--no-pager选项添加到其调用git log,或覆盖整个脚本,设置GIT_PAGER=cat在顶部.
或者,您可以配置less为在少于一个屏幕的输出值时退出:
export LESS='-F'
Run Code Online (Sandbox Code Playgroud)
或者,详细说明:
export LESS='--quit-if-one-screen'
Run Code Online (Sandbox Code Playgroud)
如果你的git输出中有颜色,你可能也想要传递-r标志:
export LESS='-F -r'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3355 次 |
| 最近记录: |