【发布时间】:2020-07-16 05:29:59
【问题描述】:
我刚刚观察到有!在 git commit 消息触发 zsh 中的事件之前。
不确定是 zsh 问题还是 git 功能。请解释一下。
【问题讨论】:
标签: git zsh git-commit oh-my-zsh
我刚刚观察到有!在 git commit 消息触发 zsh 中的事件之前。
不确定是 zsh 问题还是 git 功能。请解释一下。
【问题讨论】:
标签: git zsh git-commit oh-my-zsh
这与git无关,你的shell正在尝试扩展!。
使用\! 来转义字符或使用'单引号' 而不是"双引号" 来禁用shell 在字符串中的变量/历史扩展。
要了解有关您的 shell 历史扩展的更多信息,请查看 zsh's User Guide - 3.6.1: History expansion
最简单的用例是在忘记在开头指定 sudo 后使用 sudo !! 重新运行命令。
关于git commit的旁注:
我强烈建议反对在提交时使用-m,因为它会减少发现提交错误的机会。
如果您不使用-m,用于消息输入的文本编辑器将有一个暂存/未暂存更改的列表。在最终确定提交之前,简要查看这些列表总是一个好主意。
(如果你发现有问题,只需用空消息保存,提交将被中止)
【讨论】:
for bash as well 似乎是这样。
尝试转义该字符以避免任何与 shell 相关的副作用:
git commit -m "add \!empty check"
# or
git commit -m 'add !empty check'
或turn off history substitution 使用set +H。
【讨论】:
git commit -m 'add !empty check'。而且打字速度更快。