Git Stashを確認する方法完全ガイド:保存した作業を見逃さないコツ

git

Gitで作業中に「あれ、さっき一時保存した変更ってどこいった?」って困ったことはありませんか?

git stashは便利な機能ですが、保存した内容を確認する方法を知らないと、せっかくの作業が迷子になってしまいます。この記事では、stashに保存した内容をしっかり確認する方法を、初心者の方にも分かりやすく解説していきますね。

スポンサーリンク

Git Stashって何?基本をおさらい

まず、git stashについて簡単におさらいしましょう。

git stashは、今作業中の変更を一時的に「避難」させる機能です。「stash」は英語で「隠す」「しまう」という意味があります。

例えば、こんな場面で使います:

  • 作業中に急に別のブランチで作業する必要が出た
  • コミットするほどではないけど、変更を保存しておきたい
  • 一時的に作業をきれいな状態に戻したい

変更を一時保存することで、作業ディレクトリをクリーンな状態に戻せるんです。

Stashの一覧を確認する基本コマンド

git stash list:保存されているstashを表示

一番基本的なコマンドがこちらです。

git stash list

このコマンドを実行すると、保存されているstashの一覧が表示されます。

出力例:

stash@{0}: WIP on main: a1b2c3d 最新のコミットメッセージ
stash@{1}: WIP on feature: e4f5g6h 一つ前のコミットメッセージ
stash@{2}: On develop: 機能追加中の作業

この出力から分かることは:

  • stash@{0} が最新のstash(数字が小さいほど新しい)
  • WIP on main は「mainブランチで作業中(Work In Progress)」という意味
  • コロンの後ろにはstashを作成したときのコミット情報が表示される

複数のstashがある場合、番号で区別できるようになっているわけですね。

Stashの内容を詳しく確認する方法

一覧を見ただけでは「何を変更したか」まで分かりません。そこで、内容を確認するコマンドを使いましょう。

git stash show:変更されたファイルを確認

git stash show

このコマンドは、最新のstash(stash@{0})の変更概要を表示します。

出力例:

 index.html | 5 +++--
 style.css  | 12 ++++++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

この出力から:

  • どのファイルが変更されたか
  • 何行追加・削除されたか

が分かります。

特定のstashを確認したい場合は、番号を指定できます:

git stash show stash@{1}

これで、2番目に新しいstashの内容を確認できるんです。

git stash show -p:変更内容を詳しく表示

「どのファイルが変更されたか」だけでなく、「具体的にどこを変更したか」を見たいときは、-pオプションを付けます。

git stash show -p

または

git stash show -p stash@{1}

出力例:

diff --git a/index.html b/index.html
index 1234567..abcdefg 100644
--- a/index.html
+++ b/index.html
@@ -10,7 +10,7 @@
 <body>
-  <h1>旧タイトル</h1>
+  <h1>新タイトル</h1>
   <p>コンテンツ</p>

この-pオプション(patchの略)を使うと、実際のコード変更が行単位で表示されます。どこをどう変更したか一目瞭然ですね。

実践的な確認テクニック

特定のファイルだけ確認したい場合

stashの中の特定のファイルだけ見たいときは:

git stash show -p stash@{0} -- ファイル名

例:

git stash show -p stash@{0} -- style.css

こうすることで、style.cssの変更だけを確認できます。

メッセージ付きでstashを保存して確認しやすくする

stashを保存するとき、分かりやすいメッセージを付けておくと後で確認が楽になります:

git stash save "ヘッダーデザイン変更中"

または、より新しい書き方:

git stash push -m "ヘッダーデザイン変更中"

こうしておくと、git stash listで表示されるときに:

stash@{0}: On main: ヘッダーデザイン変更中

と表示されて、何の作業か一目で分かるんです。

よくある確認ミスと対処法

「stashがない」と表示される

No stash entries found.

このメッセージが出たら、stashが一つも保存されていない状態です。git stashコマンドを実行して、まず変更を保存しましょう。

古いstashが見つからない

stashは基本的に無期限で保存されますが、明示的に削除していない限りは残っています。

git stash list

で全てのstashが表示されるので、番号を確認してみてください。

間違ってstashを削除してしまった

git stash dropで削除したstashは、通常の方法では復元できません。ただし、削除直後であれば以下のコマンドで復元できる可能性があります:

git fsck --unreachable | grep commit

この後、表示されたコミットハッシュを使って内容を確認できます。ただし、これは上級者向けの操作なので、削除は慎重に行いましょう。

効率的なStash管理のコツ

定期的にstashを整理する

不要になったstashは削除しておくと、管理が楽になります:

# 最新のstashを削除
git stash drop

# 特定のstashを削除
git stash drop stash@{1}

# 全てのstashを削除
git stash clear

ただし、git stash clear全削除なので、使用前に必ず確認しましょう。

stash適用後は削除を検討

stashを適用(apply)した後、もう必要なければ削除しておくとスッキリします:

# stashを適用して削除
git stash pop

git stash popは、stashの内容を適用した後、自動的にそのstashを削除してくれる便利なコマンドです。

まとめ:stash確認は作業効率アップの鍵

Git stashの確認方法をマスターすれば、一時保存した作業を見失うことがなくなります。

覚えておきたい基本コマンド:

  • git stash list:stashの一覧表示
  • git stash show:最新stashの変更ファイル確認
  • git stash show -p:最新stashの詳細な変更内容確認
  • git stash show -p stash@{番号}:特定stashの詳細確認

複数のstashを使い分けるときは、保存時にメッセージを付けるのがおすすめです。そうすれば、後で確認するときに「これ何の作業だっけ?」と迷うことが減りますよ。

安心してstashを活用して、快適なGitライフを送ってくださいね。

コメント

タイトルとURLをコピーしました