WindowsでPowerShellを使っていたらこのエラーが出ました。 PowerShellでは鍵括弧”{ }”は特別な意味がある為、error: unknown switch `e’ エラーになるようです。
解決方法
以下を使用する。 HEAD@{n}の部分をシングルクオーテーションで括る。 これだけです。 {7}の’7’は、git reflogで確認して、戻りたい番号に書き換えてください。
//PowerShellの場合 git reset --hard 'HEAD@{7}'
https://github.com/dahlbyk/posh-git/issues/106 に書いてありました。
『git reset –hard error: unknown switch `e’』でググってもあまり出てこなかったので載せました。
エラー表示例
シングルクオーテーションで括っていなかったので以下の様なメッセージが出て来て焦りました。
PS C:\Users\xxxxx\Documents\Nodejs\Test\vscode-ext-ichiri> git reset --hard HEAD@{2} error: unknown switch `e' or: git reset [-q] [<tree-ish>] [--] <pathspec>... or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>] or: git reset --patch [<tree-ish>] [--] [<pathspec>...] or: DEPRECATED: git reset [-q] [--stdin [-z]] [<tree-ish>] -q, --quiet be quiet, only report errors --no-refresh skip refreshing the index after reset --mixed reset HEAD and index --soft reset only HEAD --hard reset HEAD, index and working tree --merge reset HEAD, index and working tree --keep reset HEAD but keep local changes --recurse-submodules[=<reset>] control recursive updating of submodules -p, --patch select hunks interactively -N, --intent-to-add record only the fact that removed paths will be added later --pathspec-from-file <file> read pathspec from file --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character -z DEPRECATED (use --pathspec-file-nul instead): paths are separated with NUL character --stdin DEPRECATED (use --pathspec-from-file=- instead): read paths from <stdin>
おまけ git reflog
reflogにすると履歴が出てきます。
gitも初心者なので、メッセージ書換とかしてrebaseしたら編集していたソースコード迄大分前に戻されてしまいました。 HEAD@{7}に戻れてよかった。
PS C:\Users\xxxxx\Documents\Nodejs\Test\vscode-ext-ichiri> git reflog 801185b (HEAD -> main) HEAD@{0}: rebase (skip) (finish): returning to refs/heads/main 801185b (HEAD -> main) HEAD@{1}: rebase (edit): 1.ボタンを追加 fe58dab HEAD@{2}: rebase (start): checkout HEAD~3 fe0d749 HEAD@{3}: rebase (continue) (finish): returning to refs/heads/main fe0d749 HEAD@{4}: rebase: fast-forward 5b70706 HEAD@{5}: rebase: fast-forward b46ea0b HEAD@{6}: rebase (start): checkout HEAD~2 fe0d749 HEAD@{7}: commit: 1. context.subscriptions.pushのやり方 (push関数内と変数に入れてから) 5b70706 HEAD@{8}: commit: 1.ボタンを追加 b46ea0b HEAD@{9}: revert: Revert "1.ボタンを追加" fe58dab HEAD@{10}: commit (initial): 1.ボタンを追加 //git reset --hard 'HEAD@{7}'した後 PS C:\Users\xxxxx\Documents\Nodejs\Test\vscode-ext-ichiri> git reflog fe0d749 (HEAD -> main) HEAD@{0}: reset: moving to HEAD@{7} 801185b HEAD@{1}: rebase (skip) (finish): returning to refs/heads/main 801185b HEAD@{2}: rebase (edit): 1.ボタンを追加 fe58dab HEAD@{3}: rebase (start): checkout HEAD~3 fe0d749 (HEAD -> main) HEAD@{4}: rebase (continue) (finish): returning to refs/heads/main fe0d749 (HEAD -> main) HEAD@{5}: rebase: fast-forward 5b70706 HEAD@{6}: rebase: fast-forward b46ea0b HEAD@{7}: rebase (start): checkout HEAD~2 fe0d749 (HEAD -> main) HEAD@{8}: commit: 1. context.subscriptions.pushのやり方 (push関数内と変数に入れてから) 5b70706 HEAD@{9}: commit: 1.ボタンを追加 b46ea0b HEAD@{10}: revert: Revert "1.ボタンを追加" fe58dab HEAD@{11}: commit (initial): 1.ボタンを追加
コメント