LoginSignup
3
1

Git Stashの復元: 誤って削除されたスタッシュの復元方法

Last updated at Posted at 2024-05-02

はじめに

Git stashは、開発者が未完成の作業を一時的に保管し、後で戻ってくることができる便利なツールです。しかし、うっかりStashを削除してしまった場合はどうすれば良いでしょうか?この初心者向けのチュートリアルでは、削除されたGit stashを回復する手順を説明し、貴重な作業が失われないようにします。

必要条件

始める前に、使用しているオペレーティングシステムに関わらず、Gitがインストールされていることを確認してください。さらに、Gitリポジトリがセットアップされ、準備が整っていることを確認してください。

削除されたStashの回復

ご存知かもしれませんが、Git Stashを削除する際、確認のプロンプトや警告が表示されないことがあります。Stashを削除してしまった場合は、以下の手順に従って回復します。

  1. Stashのコミットハッシュの取得:

    • git stash pop を使用した場合は、出力メッセージからstashのコミットハッシュを見つけます。
      Screenshot 2024-01-10 at 8.19.24.png

    • 手動で削除したstashの場合は、ターミナルで以下のコマンドを実行します:

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

      Screenshot 2024-01-10 at 8.24.02.png

      Screenshot 2024-01-10 at 8.24.51.png

      このコマンドは、リポジトリブラウザを開き、到達可能なコミットと到達不能なコミットをすべて表示します。

      stashのコミットを探し、stash時にメッセージを指定した場合はそれを探します。そうでない場合は、デフォルトのメッセージが "WIP on …" で始まります。SHA1 IDボックスからSHA値をコピーします。

      補足: gitk がインストールされていない場合は、git-gui をパッケージマネージャー経由でインストールし、コミットを視覚的に確認することが可能です。たとえば、Macでは brew install git-gui を使用できます。

  2. 削除されたStashの復元:

    • stashのコミットハッシュを取得したら、次の構文を使用してstashを復元します:

      git stash apply [stash_hash]
      

      Screenshot 2024-01-10 at 8.32.44.png

      または、次のコマンドを使用して新しいブランチにstashされた変更を適用します:

      git branch [branch_name] [stash_hash]
      

      [branch_name] には新しいブランチの名前を指定します。

結論

事故は起こりますが、これらの簡単な手順で削除されたGit stashを回復し、作業を保護することができます。覚えておいてほしいのは、stashはGitオブジェクトとして保管され、リポジトリのクリーンアップ(git-gc)時に2週間後に通常発生するガベージコレクションで削除されるまで保持されます。さあ、自信を持ってコーディングを進めましょう。必要に応じてstashした作業を回復できるツールを手に入れたことを知っていますから。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1