Git の Stash エントリのリストを表示する

Azhar Bashir Khan 2022年3月21日
Git の Stash エントリのリストを表示する

多くの場合、作業を一時停止して、開発環境で他のことに集中する必要があります。したがって、当面は現在の作業を保存し、別の作業に集中する必要があるかもしれません。後で元の作業に戻りたいと思います。

git stash コマンドによって提供される Git の stash 機能を使用すると、手元の作業の変更を一時的に保存できます。これにより、一時ストアから取得して、後で作業を再開できるようになります。

この一時的な作業の節約という操作は何度でも行うことができます。したがって、そのような隠し場所のエントリとその内容のリストを表示したいと思います。git stash コマンドは、stash エントリのリストを参照するためのオプションを提供します。

このチュートリアルでは、Git で stash エントリのリストを表示する方法を学習します。これを例を挙げて説明します。

Git の Stash エントリのリストを表示する

git stash コマンドを使用すると、プロジェクトリポジトリの作業ディレクトリの現在の状態を記録できます。また、インデックスの現在の状態を保存することもできます。

git stash コマンドはローカルの変更を保存し、HEAD コミットに一致するように作業ディレクトリを元に戻します。作業コピーの変更を棚上げするこの操作は、何度も実行できます。

したがって、スタッシングを何度も実行した後、プロジェクトの Git リポジトリにスタッシュエントリのリストが作成されました。git stash list コマンドを使用して、stash エントリのリストを表示できます。

作成した最新の stash エントリは、refs/stash に保存されます。古い隠し場所は、このリファレンスの reflog にあります。作成される最新の stash エントリは、stash@{0} という名前です。その前のものは stash@{1} などの名前が付けられています。

スタッシュは、スタッシュインデックスを指定することで参照できます。たとえば、整数 nstash@{n} と同等です。

いくつかの stash エントリを作成すると、次のように表示できます。

$ git stash list
stash@{0}: WIP on main: b14f387 some work
stash@{1}: WIP on main: b14f387 some other work
stash@{2}: WIP on main: b14f387 some older work

上に示したように、Git リポジトリの main ブランチに 3つの stash エントリのリストが表示されます。各スタッシュエントリの内容を表示することもできます。

最新の stash エントリのファイルを表示するには、以下に従う必要があります。

$ git stash show
 test.txt | 4 ++++
 1 file changed, 4 insertions(+)

test.txt が最近隠されていることがわかります。

最新の stash エントリのファイルの変更を表示するには、次のようにする必要があります。

$ git stash show -p
diff --git a/test.txt b/test.txt
index fae50f7..f60e878 100644
--- a/test.txt
+++ b/test.txt
@@ -73,4 +73,16 This test
 
 some old text
 
+ some new text
+1. Add this
+2. Add that
+

git stash show コマンドは、stash エントリに記録された変更を、stash エントリが最初に作成されたときに隠されたコンテンツとコミットバックの差分として表示します。

名前を使用して特定の隠し場所を表示することもできます。git stash show -p <named-stash> で名前を指定する必要があります。

したがって、stash@{1} という名前の stash エントリを表示するには、次のようにコマンドを実行します。

$ git stash show -p stash@{1}

現在のエントリだけでなく、ブランチ全体のスタッシュエントリも表示されます。そのためには、次のコマンドを実行する必要があります。

$ git stash list --all

日付範囲ごとに Git の隠し場所の履歴を表示することもできます。コマンド git stash list をオプション --before または --after とともに使用する必要があります。

以下の日付範囲でコマンドを実行できます。

$ git stash list --before 3.days.ago
$ git stash list --after 2.days.ago

-stat オプションを使用して、gitstash 履歴内の各要素の変更を要約できます。以下に示すように、-stat オプションを使用してコマンドを実行できます。

$ git stash list --stat

したがって、Git で stash エントリのリストを表示する方法を示しました。

関連記事 - Git Stash