間違えて削除してしまったstashを復元する

表題の件です。 git stash dropで必要なstashを削除してしまっときの対処法です。いつも忘れてしまうのでメモついでにブログに上げておきます。

問題

$ git stash drop

最新の必要なstashをあやまって削除してしまった。

対処法

1.git stash drop した時に

Dropped refs/stash@{0} (lkjsflkdfjsglkdfjgdlkfgjsdlkgjdskglsdjglerksjgse)

というのが表示されるので、その中の()内の文字列を手元に控える

2.以下のコマンドを実行

git cherry-pick -n -m1 lkjsflkdfjsglkdfjgdlkfgjsdlkgjdskglsdjglerksjgse

これで誤って削除してしまったstashが復元されると思います。

備考

記事の最後に紹介する参考サイトをもとに git fsck... をやったのですが、

cut: bad delimiter

と表示されてしまいうまくいきませんでした。

同じような状況が発生したら参考にしてみてください。

参考サイト

CmdNote - [git,git-fsck,git-stash] 誤って削除した stash を復元する

gitでありがちな問題の解決方法まとめ - Qiita

誤って削除した Git Stash を戻す | Deadwood