Git スタッシュが空かどうかを確認する方法

GitGitBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Git のスタッシュが空かどうかを確認する方法を学びます。スタッシュの内容を調べて検証するさまざまな方法を探ります。

まず、git stash show コマンドを使用して、スタッシュ内の変更を調べます。これには、概要の表示や詳細な差分の表示が含まれます。次に、git stash list を使用して、スタッシュの存在と内容を検証する方法を学びます。最後に、空でないスタッシュでこれらのコマンドをテストし、理解を深めます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") subgraph Lab Skills git/status -.-> lab-560106{{"Git スタッシュが空かどうかを確認する方法"}} git/diff -.-> lab-560106{{"Git スタッシュが空かどうかを確認する方法"}} git/stash -.-> lab-560106{{"Git スタッシュが空かどうかを確認する方法"}} end

git stash show を実行して調べる

このステップでは、git stash show コマンドを使用して、Git のスタッシュに保存された変更を調べる方法を学びます。

スタッシュを調べる前に、まずスタッシュを作成する必要があります。簡単なファイルを作成し、変更をスタッシュしましょう。

まず、プロジェクトディレクトリにいることを確認します。

cd ~/project/my-time-machine

次に、notes.txt という新しいファイルを作成し、いくつかの内容を追加します。

echo "Important notes for the future." > notes.txt

新しいファイルを確認するために、ステータスをチェックします。

git status

notes.txt が追跡されていないファイルとして表示されるはずです。

では、これらの変更をスタッシュしましょう。これにより、変更がコミットされずに保存され、作業ディレクトリがクリーンになります。

git stash save "Add important notes"

変更が保存され、作業ディレクトリがクリーンになったことを示す出力が表示されるはずです。

スタッシュができたので、git stash show を使用してその内容を調べることができます。デフォルトでは、git stash show は最新のスタッシュ内の変更の概要を表示します。

次のコマンドを実行します。

git stash show

次のような出力が表示されるはずです。

 notes.txt | 1 +
 1 file changed, 1 insertion(+)

この出力は、1 つのファイル (notes.txt) が変更され、1 行が追加されたことを示しています。

実際の内容の変更 (差分) を表示するには、-p または --patch オプションを追加できます。

git stash show -p

これにより、スタッシュ内の変更の差分が表示され、git diff と同じように動作します。次のような内容が表示されるはずです。

diff --git a/notes.txt b/notes.txt
new file mode 100644
index 0000000..a1b2c3d
--- /dev/null
+++ b/notes.txt
@@ -0,0 +1 @@
+Important notes for the future.

この出力は、新しいファイル notes.txt が作成され、"Important notes for the future." という行が追加されたことを示しています。

git stash show コマンドは、スタッシュを適用することなく、スタッシュに含まれる変更をすばやく確認するのに非常に便利です。これにより、後でどのスタッシュを適用または削除するかを決めるのに役立ちます。

git stash list を使って確認する

このステップでは、git stash list コマンドを使って、作成したすべてのスタッシュのリストを表示する方法を学びます。複数のスタッシュがあり、それぞれに何が含まれているかを覚えておく必要がある場合に便利です。

まだプロジェクトディレクトリにいることを確認します。

cd ~/project/my-time-machine

前のステップで、1 つのスタッシュを作成しました。git stash list を使ってそれを確認しましょう。

次のコマンドを実行します。

git stash list

次のような出力が表示されるはずです。

stash@{0}: On master: Add important notes

この出力を分解してみましょう。

  • stash@{0}: これはスタッシュの名前です。stash はそれがスタッシュであることを示し、{0} はリスト内のスタッシュのインデックスです。最新のスタッシュは常にインデックス {0} になります。
  • On master: これは、スタッシュを作成したときにいたブランチを示しています。
  • Add important notes: これは、git stash save でスタッシュを作成したときに指定したメッセージです。メッセージを指定しない場合、Git は現在のコミットと変更されたファイルに基づいて自動的にメッセージを生成します。

複数のスタッシュがある場合、stash@{0}stash@{1}stash@{2} などのように、インデックスが増えながらリストされます。

リストがどのように変化するかを確認するために、もう 1 つスタッシュを作成しましょう。

まず、前の実験で作成した message.txt ファイルを変更します。

echo "Adding another line for testing." >> message.txt

次に、これらの新しい変更をスタッシュします。

git stash save "Add another line to message"

再度 git stash list を実行します。

git stash list

今度は 2 つのスタッシュが表示されるはずです。

stash@{0}: On master: Add another line to message
stash@{1}: On master: Add important notes

新しいスタッシュがインデックス {0} になり、前のスタッシュがインデックス {1} に移動したことに注意してください。Git は常に最新のスタッシュをインデックス {0} でリストの先頭に配置します。

git stash list コマンドは、複数のスタッシュを管理するために不可欠です。保存した作業の明確な概要を提供し、スタッシュを適用または削除する必要があるときに、特定のスタッシュを識別して参照することができます。

空でないスタッシュのテスト

このステップでは、複数のスタッシュを使って git stash showgit stash list を実践し、理解を深めます。

プロジェクトディレクトリにいることを確認します。

cd ~/project/my-time-machine

現在、2 つのスタッシュがあります。再度リストを表示して確認しましょう。

git stash list

次のように表示されるはずです。

stash@{0}: On master: Add another line to message
stash@{1}: On master: Add important notes

では、最初のスタッシュ (stash@{0}) の内容を調べましょう。コマンドにインデックスを追加することで、表示するスタッシュを指定できます。

git stash show stash@{0}

これにより、最新のスタッシュ (つまり message.txt に 1 行を追加したスタッシュ) の変更の概要が表示されます。出力は次のようになるはずです。

 message.txt | 1 +
 1 file changed, 1 insertion(+)

このスタッシュの差分を表示するには、-p オプションを使用します。

git stash show -p stash@{0}

message.txt で追加された行の差分が表示されるはずです。

次に、2 番目のスタッシュ (stash@{1}) を調べましょう。これは notes.txt ファイルを作成したスタッシュです。

git stash show stash@{1}

出力は次のようになるはずです。

 notes.txt | 1 +
 1 file changed, 1 insertion(+)

このスタッシュの差分を表示するには、次のコマンドを実行します。

git stash show -p stash@{1}

これにより、notes.txt の作成に関する差分が表示されます。

複数の変更セットを保存している場合、個々のスタッシュをリスト表示して調べることができることは非常に重要です。これにより、スタッシュを 1 つずつ適用することなく、必要なスタッシュをすばやく特定できます。

次の実験では、これらのスタッシュを適用して管理する方法を学びます。

まとめ

この実験では、git stash show コマンドを使用して Git スタッシュの内容を調べる方法を学びました。まず、簡単なファイルを作成し、変更をスタッシュして作業対象のスタッシュを用意しました。次に、git stash show を使用して、最新のスタッシュの変更の概要を表示しました。これには、変更されたファイルの数や追加/削除された行数が含まれています。また、git stash show-p または --patch オプションを組み合わせて使用し、スタッシュ内の変更の実際の差分を表示することも試しました。これにより、追加、変更、または削除された特定の行を確認することができます。このコマンドは、スタッシュを適用することなく、その内容をすばやく理解するための便利なツールです。