Git リポジトリに一時保存内容があるかどうかを確認する方法

GitGitBeginner
今すぐ練習

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

はじめに

この実験では、Git リポジトリに一時保存(stash)された変更があるかどうかを確認する方法を学びます。既存の一時保存内容を表示するために git stash list コマンドを調べ、作業ディレクトリの状態を確認するために git status を使用します。

以下の手順に従うことで、git stash を使用して一時的に保存した変更があるかどうかを識別し、一時保存内容や未コミットの変更がない場合に作業ツリーがクリーンであることを確認する方法を理解できます。


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/DataManagementGroup -.-> git/stash("Save Changes Temporarily") subgraph Lab Skills git/status -.-> lab-560090{{"Git リポジトリに一時保存内容があるかどうかを確認する方法"}} git/stash -.-> lab-560090{{"Git リポジトリに一時保存内容があるかどうかを確認する方法"}} end

git stash list を実行して確認する

このステップでは、git stash について学びます。あなたがある機能の開発に取り組んでいるとき、突然別のタスクに切り替える必要が出たり、バグを修正する必要が生じたと想像してみてください。現在の作業はまだコミットする段階ではないけれども、作業内容を失いたくないという状況があります。このようなときに git stash が便利なのです!

git stash は、未コミットの変更(ステージング済みと未ステージングの両方)を一時的に保存し、作業ディレクトリを HEAD コミットと一致する状態に戻します。現在の作業を安全な場所に片付けて、別の作業に取り組み、後で戻ってくることができるようになります。

まずは、一時保存(stash)された変更があるかどうかを確認しましょう。ターミナルで、~/project/my-time-machine ディレクトリにいることを確認し、以下のコマンドを実行します。

cd ~/project/my-time-machine
git stash list

このリポジトリで git stash を初めて使用する可能性が高いため、出力は空になるか、一時保存内容が見つからない旨のメッセージが表示されるはずです。これは、現在のリポジトリに保存された一時保存内容がないことを意味します。

## 一時保存内容が存在しない場合、出力がないか、次のようなメッセージが表示されることがあります。
## No stashed changes found.

git stash list を理解することは、一時保存された変更を管理する最初のステップです。保存されている一時保存内容を確認できるため、これらを適用したり削除したりする前に重要です。

git status で確認する

前のステップでは、git stash list を使用して既存の一時保存内容(stash)を確認しました。次に、git status を使用して作業ディレクトリの現在の状態を確認しましょう。このコマンドは、どのような変更があり、それらが Git によって追跡されているかを理解するために不可欠です。

まだ ~/project/my-time-machine ディレクトリにいることを確認してください。以下のコマンドを実行します。

git status

前の実験で最後のコミット以降に変更を加えていないため、出力は作業ツリーがクリーンであることを示すはずです。

On branch master
nothing to commit, working tree clean

この出力は、リポジトリに未コミットの変更がないことを確認します。作業ディレクトリは master ブランチの最新のコミットと一致しています。これは、コミットを作成した後、または一時保存内容を適用してコンフリクトを解決した後に期待される状態です。

git status の出力を理解することは、Git のワークフローを管理する上で重要です。これにより、どのファイルが変更され、次のコミットのためにステージングされているか、または追跡されていないかを知ることができます。

一時保存内容のないリポジトリをテストする

前のステップで、リポジトリがクリーンで既存の一時保存内容(stash)がないことを確認しました。これは、git stash を試すのに最適な状態です。

git stash の動作を示すために、まずリポジトリにいくつかの変更を加える必要があります。前の実験で作成した message.txt ファイルを変更しましょう。

~/project/my-time-machine ディレクトリにいることを確認してください。nano エディタを使用して message.txt ファイルを開きます。

nano message.txt

ファイルに新しい行を追加します。例えば:

Hello, Future Me
This is a new line.

Ctrl + S を押してファイルを保存し、Ctrl + X を押して nano を終了します。

次に、再度リポジトリの状態を確認しましょう。

git status

message.txt が変更されたことを示す出力が表示されるはずです。

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   message.txt

no changes added to commit (use "git add" and/or "git commit -a")

この出力は、message.txt に変更を加えたが、これらの変更はまだコミットのためにステージングされていないことを示しています。これは git stash を使用するのに最適なシナリオです。次のステップでは、git stash を使用してこれらの変更を一時的に保存します。

まとめ

この実験では、Git リポジトリ内の一時保存内容(stash)を確認する方法を学びました。まず、git stash list コマンドを使用して、現在保存されている一時保存内容があるかどうかを確認しました。出力が空であるか、一時保存内容がないことを示すメッセージが表示される場合は、git stash を使用して一時的に保存された変更がないことが確認できます。

次に、git status を使用して作業ディレクトリの状態を確認しました。git status の出力が示すように、作業ツリーがクリーンであれば、リポジトリに未コミットの変更がないことが確認できます。これら 2 つのコマンドは、Git リポジトリの現在の状態を理解し、一時保存内容を管理するために基本的なものです。