在我的团队中,我们使用 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 中不可能?

提前致谢。

最佳答案

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

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

关于bash - 如何在 Zsh 中配置 gerrit 引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15892624/

10-14 16:29