git checkout 给出 zsh: 未找到匹配项:

Rap*_*nel 6 git zsh special-characters

我的同事创建了一个分支。我正在尝试去分行结账。

git checkout hisName/branchNameWithAHash#Inside
Run Code Online (Sandbox Code Playgroud)

终端返回

zsh: no matches found: hisName/branchNameWithAHash#Inside
Run Code Online (Sandbox Code Playgroud)

如果我这样做git branch -r,我可以看到远程分支确实存在:

origin/HEAD -> origin/master
  origin/hisName/branchNameWithAHash#Inside
  origin/master
Run Code Online (Sandbox Code Playgroud)

为什么我会得到no matches found

Rap*_*nel 11

事实证明,如果分支名称包含像井号这样的特殊字符,我需要在分支名称周围加上引号 #

git checkout 'hisName/branchNameWithAHash#Inside' 我现在得到:

Branch 'grzegorz/configureAWSAmplify_#PROAP-320' set up to track remote branch 'hisName/branchNameWithAHash#Inside' from 'origin'.
Switched to a new branch 'hisName/branchNameWithAHash#Inside'
Run Code Online (Sandbox Code Playgroud)

我只测试了“单引号”,但我认为“双引号”也应该有效。

感谢 @user1934428 您的评论和链接 @phd 这似乎是我的 zsh 配置的问题。输入unsetopt EXTENDED_GLOB解决了问题。

现在,如果我进入,echo stringwithhash# 我会得到stringwithhash#,而之前是zsh: no matches found: stringwithhash#