3

在我的团队中,我们使用 gerrit 进行代码审查。

如您所知,gerrit 使用神奇的 'refs/for/*'。


因为我不想打字

git push origin HEAD:refs/for/*

每次我推送到远程,

我试图更改我的 git 存储库的配置,如下所示。

git config remote.origin.push refs/heads/*:refs/for/*

更改配置在 bash 中效果很好,

但它在我的 zsh 中失败,并出现如下错误。

zsh: no matches found: refs/heads/*:refs/for/*

我认为在 zsh 中使用星号与 bash 有所不同,

但我无法确切知道问题所在。


我怎么解决这个问题?还是在 zsh 中不可能?

提前致谢。

4

1 回答 1

5

默认情况下,当 bash 无法 glob 时,它会将整个模式放入未更改的参数中。当 zsh 无法 glob 时,它根本不会运行命令,在大多数情况下我觉得这更方便。两种 shell 都可以配置,zsh 至少还有其他三种模式:do like bash、从参数中删除模式和从参数中删除模式,除非没有匹配的模式。这些行为是通过取消NOMATCH设置或设置CSH_NULL_GLOBNULL_GLOB分别实现的。

我建议保持当前行为并使用各种转义方法:('refs/heads/*:refs/for/*'双引号也可以)或refs/heads/\*:refs/for/\*.

于 2013-04-09T03:55:12.910 回答