Edited at

zsh: no matches found: HEAD^と出たときの解決策

More than 3 years have passed since last update.


コミットを取り消したい

Node.jsでプロジェクトを始めようと思ってたら間違えて、node_modules一式もコミットしてしまった。

ヤバイヤバイ、と思ってコミットを取り消そうと思う。

$ git reset --hard HEAD^

zsh: no matches found: HEAD^

マッチしませんと言われました。


エラーの原因

調べてみると、zshの設定で、set opt extended_globなるものがあるらしい。

これに^を使うようで、ざっくり言えば競合してしまったのであろう。


解決策

以下のように、エスケープしてしまえば良いようです。

$ git reset --hard HEAD\^

うまくコミットが取り消せました。