問題
zsh使っててgit diff HEAD^
すると、zsh: no matches found: HEAD^
エラーが発生する。
解決法
zsh-git-escape-magicをインストールする。
解説
zsh使っててextended_glob設定していると、キャレットは特殊文字とみなされてしまいます。
そのため、
git diff HEAD\^
とキャレットをエスケープしてやる必要があります。
これは面倒なのですが、zsh-git-escape-magicをインストールすると、
git diff HEAD(ここで^を入力)
これが
git diff HEAD\^
と展開してくれます。便利!
キャレット以外にもgitコマンドに特殊文字が含まれてるといい感じでエスケープしてくれるみたいです。
インストール方法
.zshrc
fpath=(~/.functions ${fpath})
こういう感じで.zshrcに設定しておいて、~/.functionsに git-escape-magic ファイルを配置すればOKです。
以上です。