加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

cygwin – zsh无法识别HEAD ^

发布时间:2020-12-13 23:57:25 所属栏目:Linux 来源:网络整理
导读:我正在使用zsh和prezto与cygwin.当我输入这个git命令’git reset HEAD5’时,zsh找不到HEAD ^. 但是,当我切换到使用bash时,它可以工作. $git reset HEAD^ zsh: no matches found: HEAD^ 有没有人见过同样的问题? 解决方法 ^字符在zsh中的文件名扩展中被视为
我正在使用zsh和prezto与cygwin.当我输入这个git命令’git reset HEAD5’时,zsh找不到HEAD ^.
但是,当我切换到使用bash时,它可以工作.

$git reset HEAD^                                        
zsh: no matches found: HEAD^

有没有人见过同样的问题?

解决方法

^字符在zsh中的文件名扩展中被视为特殊字符,但仅当设置了EXTENDED_GLOB选项时:

zsh% setopt noEXTENDED_GLOB
zsh% echo HEAD^
HEAD^
zsh% setopt EXTENDED_GLOB
zsh% echo HEAD^
zsh: no matches found: HEAD^
zsh%

Bash没有此功能. (确切地说,bash确实有一个扩展的glob特性,由shopt -s extglob启用,但是bash的扩展glob语法不会将^字符视为特殊字符.)

启用此功能后,^是一个类似于*但具有不同含义的特殊字符.与*一样,你可以通过将其括在单引号或双引号中或者用反斜杠括起来来禁止它的特殊含义.报价是最简单的解决方案.

而不是

git reset HEAD^

试试这个:

git reset 'HEAD^'

^通配符的含义是不相关的,因为您需要做的就是避免使用它,但无论如何我都会提到它.根据zsh手册,^ X匹配除模式X之外的任何内容.对于HEAD ^的情况,^后面没有任何内容 – 这意味着HEAD ^匹配HEAD,后跟除了什么之外的任何东西.这是一种迂回的说法,即HEAD ^匹配以HEAD开头的文件名,后跟一些非空字符串.给定文件HEAD,HEAD1和HEAD2,模式HEAD ^匹配HEAD1和HEAD2.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读