gosoly

ゆっくりと趣味に浸る。

消してしまったgit stashを戻す秘術

DSCF1164.jpg

誤って使わないっと思いstashを吹き飛ばしたところ、実は必要なstashだった時に活躍するコマンド

履歴から探す

以下のコマンドでstashのリストを取得します。
ググると他にも取得の仕方があるようですが、個人的に一番わかり易いリストだと思います。

git fsck | awk '/dangling commit/ {print $3}' | xargs -J% git show --summary --oneline

どの程度stashを使っていたかによりここで地獄の度合いが変わるのですが、きちんと名前をつけていたりするとラッキーです。

復旧

stashを適応させる

git cherry-pick -n -m1 見つけたsha1

消してしまった場合を考え、重要そうなstashは名前書いておくと、こういった時に助かるっと痛感しました。

あとがき

いやほんと、ブランチ切り替えるから一旦作業stashしておいたのを消し飛ばしたときは死んだかと思いました(笑)