Gitのstashを戻さずに確認する|list・showと未追跡ファイル

  • 公開:2026.11.06
  • 更新:2026.11.06
  • 開発

以前退避した変更を使いたいものの、どのstashに何が入っているか思い出せないことがあります。すぐに作業ファイルへ戻す前に、一覧、変更したファイル、差分の順に見ると、必要な退避を選びやすくなります。

以下はGitリポジトリ内で実行する確認用のコマンドです。PowerShellでもstashの指定をそのまま渡せるよう、'stash@{0}'を引用符で囲んでいます。

退避の一覧から対象を選ぶ

git stash list

たとえばstash@{0}: On main: inspect-exampleなら、先頭の指定とメッセージを手掛かりに対象を選べます。stash@{0}は最新の退避で、新しい退避を作ると番号が変わります。後で操作するときにも一覧を見直すと、別の退避を選ぶ間違いを防げます。

変更したファイルを先に見る

git stash show --stat 'stash@{0}'

ファイル名と変更量から、探している作業に関係する退避かを確認できます。対象が別の番号なら、引用符の中をその番号へ置き換えてください。ファイルが多い退避でも、最初に概要を見ると必要な差分を探しやすくなります。

追加・削除された行を確認する

git stash show --patch 'stash@{0}'

差分の-は削除側、+は追加側です。ここで見ているのは退避された変更で、現在の作業ファイルとの差分とは同じではありません。手元の編集を調べたいときは、Gitの差分と空白エラーの確認方法も役立ちます。

退避した新規ファイルも確認する

git stash show --include-untracked --patch 'stash@{0}'

退避時に未追跡ファイルも含めて保存していた場合は、この指定でその内容も確認できます。保存していなかったファイルが後から増えるわけではありません。Git 2.51.2の初期設定で試した例では、通常のshow --patchには追跡済みファイルの変更だけが現れ、上の指定を加えると退避済みの新規ファイルも現れました。表示の初期値はGitの設定によって変わるため、見たいものをオプションで指定する方が明確です。

現在の作業状態も見てから次の操作を決める

git status --short --branch

一覧と差分を読んだだけでは、退避内容を作業ファイルへ戻したことにはなりません。現在の変更がある場合は、その内容と選んだstashの両方を把握してから復元を判断できます。applyやpopは実際に変更を戻す操作なので、内容を見るためのコマンドとは使う場面が違います。

git stashだけを実行すると新しい退避を作る動作になるため、一覧を見るときは末尾のlistまで入力してください。ステージだけを外したい場合は、編集を残したままステージを解除する方法を使えます。

参考資料

Git公式:git stashの一覧・内容表示