はじめに
この実験では、Git のスタッシュが空かどうかを確認する方法を学びます。スタッシュの内容を調べて検証するさまざまな方法を探ります。
まず、git stash show
コマンドを使用して、スタッシュ内の変更を調べます。これには、概要の表示や詳細な差分の表示が含まれます。次に、git stash list
を使用して、スタッシュの存在と内容を検証する方法を学びます。最後に、空でないスタッシュでこれらのコマンドをテストし、理解を深めます。
この実験では、Git のスタッシュが空かどうかを確認する方法を学びます。スタッシュの内容を調べて検証するさまざまな方法を探ります。
まず、git stash show
コマンドを使用して、スタッシュ内の変更を調べます。これには、概要の表示や詳細な差分の表示が含まれます。次に、git stash list
を使用して、スタッシュの存在と内容を検証する方法を学びます。最後に、空でないスタッシュでこれらのコマンドをテストし、理解を深めます。
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 show
と git 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
オプションを組み合わせて使用し、スタッシュ内の変更の実際の差分を表示することも試しました。これにより、追加、変更、または削除された特定の行を確認することができます。このコマンドは、スタッシュを適用することなく、その内容をすばやく理解するための便利なツールです。