git commit 感叹号导致 zsh: 非法修饰符:

she*_*ape 12 git zsh commit

我正在运行 Zsh 的最新可用稳定版本,并且!按照传统提交样式在 git 提交消息中使用感叹号时遇到错误。https://www.conventionalcommits.org/en/v1.0.0/

\n\n
\xe2\x86\x92 zsh --version\nzsh 5.8 (x86_64-apple-darwin19.3.0)\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及 zsh 违规的提交消息:

\n\n
\xe2\x86\x92 git commit -am "chore(foo)!: bar"    \nzsh: illegal modifier:\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经在 Bash、Fish 和 Hyper 中尝试过相同的命令,并且全部成功,没有问题。所以这似乎是 Zsh 的另一个奇怪的细微差别。有人修复 zsh 了吗?我真的很希望能够使用-am速记,而不必进入完整的git commit交互式编辑器。

\n

che*_*ner 21

zsh将其解释!为历史扩展的开始。只需使用单引号而不是双引号即可。

git commit -am 'chore(foo)!: bar'
Run Code Online (Sandbox Code Playgroud)