削除した git stash の復元手順

2025/03/02に公開

削除した git stash の復元手順

Github の stash をうっかり削除してしまった時の復元手順をまとめてみました。

削除された stash の候補となる SHA1 ハッシュの捜索

$ git fsck --no-reflog | awk '/dangling commit/ {print $3}'

見つかった SHA1 ハッシュの内容を確認

$ git log --oneline --graph --decorate $(git fsck --no-reflog | awk '/dangling commit/ {print $3}') | grep -i "stash"

削除された stash の候補を表示し、"stash" という単語を含むものをフィルタリングします。
メッセージ付きの stash は通常、このリストに表示されます。

目的の stash の内容を詳しく確認

$ git show [見つかったSHA1ハッシュ]

復元したい stash をコマンドで復元

$ git stash apply [見つかったSHA1ハッシュ]

この方法で、メッセージ付きで削除してしまった stash を効率的に探し出し、復元することができます。

  • この方法は、git の内部データベースを直接探索するため、時間がかかる場合があります。
  • 削除された stash は、ガベージコレクションが実行されるまでの間のみ復元可能です。
  • 重要な変更は定期的にコミットすることをお勧めします。
  • stash は一時的な保存手段として使用するのが最適です。

参考

GitHubで編集を提案

Discussion