我正在使用Zsh并尝试为项目运行git show以查看我的修订历史记录.如果我做
git show HEAD
Run Code Online (Sandbox Code Playgroud)
它工作正常,显示我上次提交,但以下命令不起作用
[master?5?]:~/project $ git show HEAD^
zsh: no matches found: HEAD^
[master?5?]:~/project $ git show HEAD^^
zsh: no matches found: HEAD^^
Run Code Online (Sandbox Code Playgroud)
但这确实有效
git HEAD~1
Run Code Online (Sandbox Code Playgroud)
我在这里做错了git show HEAD^^
吗?
git版本1.7.4.5
Chr*_*her 37
而不是转义或引用插入符号,你可以告诉zsh
当它无法匹配glob模式时停止对命令的诅咒.把这个选项放在你的.zshrc
:
setopt NO_NOMATCH
Run Code Online (Sandbox Code Playgroud)
zsh
如果glob-matching失败,该选项将停止中止命令.git show HEAD^
将正常工作,你不必逃脱插入符号.此外,globbing和^
事件指示符仍将以您期望的方式工作.
要在评论中回答dolzenko的问题,你可以通过禁用扩展的globbing 来获得git log ^production master
(也就是巧合,也就是git的'双点'语法所做的git log production..master
:):
setopt NO_EXTENDED_GLOB
Run Code Online (Sandbox Code Playgroud)
当然,你可能实际上依赖于扩展的globbing并且不知道它.我建议在禁用之前阅读它的功能.
Joh*_*web 30
你需要逃避它或引用它:
% git show HEAD\^
% git show 'HEAD^^'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5125 次 |
最近记录: |