我正在使用 Zsh 并尝试为项目运行 git show 以查看我的修订历史记录。如果我做
git show HEAD
它可以很好地向我显示我的最后一次提交,但是以下命令不起作用
[master↑5⚡]:~/project $ git show HEAD^
zsh: no matches found: HEAD^
[master↑5⚡]:~/project $ git show HEAD^^
zsh: no matches found: HEAD^^
然而这确实有效
git HEAD~1
我在这里做错了什么吗git show HEAD^^
?
git 版本 1.7.4.5
您可以直接告诉,而不是转义或引用插入符号zsh
当命令无法匹配 glob 模式时停止对该命令进行保释。将此选项放入您的.zshrc
:
setopt NO_NOMATCH
该选项停止zsh
如果全局匹配失败则中止命令。git show HEAD^
将正常工作,并且您无需逃避插入符号。此外,通配符和^
事件指示符 http://www.gnu.org/software/bash/manual/bashref.html#Event-Designators仍会按您期望的方式工作。
要回答dolzenko在评论中的问题,你可以得到git log ^production master
(巧合的是,这也正是 git 的“双点”语法的作用:git log production..master
) 通过禁用扩展通配符来工作:
setopt NO_EXTENDED_GLOB
当然,您可能实际上依赖于扩展通配符,但自己并不知道。我建议阅读有关它能做什么 http://www.refining-linux.org/archives/37/ZSH-Gem-2-Extended-globbing-and-expansion/在禁用它之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)