はじめに
Git stashは、開発者が未完成の作業を一時的に保管し、後で戻ってくることができる便利なツールです。しかし、うっかりStashを削除してしまった場合はどうすれば良いでしょうか?この初心者向けのチュートリアルでは、削除されたGit stashを回復する手順を説明し、貴重な作業が失われないようにします。
必要条件
始める前に、使用しているオペレーティングシステムに関わらず、Gitがインストールされていることを確認してください。さらに、Gitリポジトリがセットアップされ、準備が整っていることを確認してください。
削除されたStashの回復
ご存知かもしれませんが、Git Stashを削除する際、確認のプロンプトや警告が表示されないことがあります。Stashを削除してしまった場合は、以下の手順に従って回復します。
-
Stashのコミットハッシュの取得:
-
手動で削除したstashの場合は、ターミナルで以下のコマンドを実行します:
gitk --all $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )
このコマンドは、リポジトリブラウザを開き、到達可能なコミットと到達不能なコミットをすべて表示します。
stashのコミットを探し、stash時にメッセージを指定した場合はそれを探します。そうでない場合は、デフォルトのメッセージが "WIP on …" で始まります。SHA1 IDボックスからSHA値をコピーします。
補足:
gitk
がインストールされていない場合は、git-gui
をパッケージマネージャー経由でインストールし、コミットを視覚的に確認することが可能です。たとえば、Macではbrew install git-gui
を使用できます。
-
削除されたStashの復元:
結論
事故は起こりますが、これらの簡単な手順で削除されたGit stashを回復し、作業を保護することができます。覚えておいてほしいのは、stashはGitオブジェクトとして保管され、リポジトリのクリーンアップ(git-gc)時に2週間後に通常発生するガベージコレクションで削除されるまで保持されます。さあ、自信を持ってコーディングを進めましょう。必要に応じてstashした作業を回復できるツールを手に入れたことを知っていますから。