Git でファイルが追跡されているかどうかを確認する方法

GitBeginner
オンラインで実践に進む

はじめに

この実験では、ファイルが Git で追跡されているかどうかを確認する方法を学びます。2 つの重要な Git コマンド git ls-filesgit status を調べます。

まず、git ls-files を使用して、リポジトリ内で現在 Git が追跡しているすべてのファイルをリストアップします。次に、git status を使用して追跡状態を確認し、すべての変更がコミットされたときに Git が作業ディレクトリの状態をどのように報告するかを理解します。最後に、Git が追跡されていないファイルをどのように扱うかをテストします。

git ls-files を実行してファイルを確認する

このステップでは、git ls-files コマンドを使用して、現在リポジトリ内で Git が追跡しているファイルを確認します。このコマンドは、プロジェクトの履歴に含まれるファイルの概要をすばやく把握するのに便利です。

まず、my-time-machine ディレクトリにいることを確認してください。いない場合は、cd コマンドを使用してそこに移動します。

cd ~/project/my-time-machine

次に、git ls-files コマンドを実行します。

git ls-files

前のステップで message.txt ファイルを作成してコミットしているので、出力にこのファイル名が表示されるはずです。

message.txt

git ls-files コマンドは、現在リポジトリ内で Git が追跡しているすべてのファイルをリストアップします。これらのファイルは、Git が変更を積極的に監視し、コミットに含まれるファイルです。

どのファイルが追跡されているかを理解することは重要です。なぜなら、Git は追跡されているファイルの履歴のみを管理するからです。追跡されていないファイルは、コミットを行う際に Git から無視されます。これにより、プロジェクトのバージョン履歴に何が含まれるかをコントロールすることができます。

次のステップでは、まだ追跡されていないファイルを Git がどのように扱うかを調べます。

git status を使用して追跡状態を確認する

前のステップでは、git ls-files を使用して message.txt が追跡されているファイルであることを確認しました。今度は、git status コマンドを再度使用して、すべての変更がコミットされたときに Git がリポジトリの状態をどのように報告するかを確認しましょう。

まだ ~/project/my-time-machine ディレクトリにいることを確認してください。

git status コマンドを実行します。

git status

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

On branch master
nothing to commit, working tree clean

この出力からいくつかの重要なことがわかります。

  • "On branch master": まだプロジェクトのメインのタイムライン(ブランチ)にいます。
  • "nothing to commit, working tree clean": これが重要な部分です。作業ディレクトリにコミットする必要のある変更がないことを意味します。Git は、現在のファイルの状態が最後のコミットの状態と一致していることを認識しています。

これは、一連の変更を完了してコミットしたときのリポジトリの理想的な状態です。作業ディレクトリが「クリーン」で、最新のコミットと同期していることを示しています。

この出力を、message.txt を作成してコミットする前に見た git status の出力と比較すると、Git のステータスメッセージがファイルとコミットの状態を反映するようにどのように変化するかがわかります。

次のステップでは、新しいファイルを導入して、追跡されていないファイルが存在するときに Git のステータスがどのように変化するかを確認します。

追跡対象外のファイルをテストする

このステップでは、my-time-machine ディレクトリに新しいファイルを作成し、追跡されていないファイルが存在することを反映するように Git のステータスがどのように変化するかを確認します。

~/project/my-time-machine ディレクトリにいることを確認してください。

echo コマンドを使用して notes.txt という名前の新しいファイルを作成します。

echo "Some random notes" > notes.txt

このコマンドは、notes.txt という名前の新しいファイルを作成し、「Some random notes」というテキストを書き込みます。

次に、git status を使用してリポジトリのステータスを再度確認しましょう。

git status

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

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

nothing added to commit but untracked files present (use "git add" to track)

「Untracked files:」のセクションに注目してください。Git は新しいファイル notes.txt を検出しましたが、このファイルが追跡されていないことを示しています。これは、まだこのファイルをリポジトリの履歴に含めるように Git に指示していないためです。

これが Git の重要な概念です。git add コマンドを使用して、追跡するファイルを明示的に Git に指示する必要があります。これにより、ディレクトリ内のすべてのファイルを自動的に含めることを防ぎます。ディレクトリ内には、一時ファイル、ビルドアーティファクト、またはプロジェクトの履歴に含めたくない個人用のメモなどが含まれる場合があります。

次の実験では、この新しいファイルをステージングエリアに追加してコミットし、リポジトリ内の追跡されるファイルにする方法を学びます。

まとめ

この実験では、ファイルが Git によって追跡されているかどうかを確認する方法を学びました。git ls-files コマンドを使用して、リポジトリ内で現在追跡されているすべてのファイルをリストし、message.txt が追跡されていることを確認しました。

次に、git status コマンドを使用してリポジトリの状態を確認しました。「nothing to commit, working tree clean」という出力は、すべての変更がコミットされ、作業ディレクトリに追跡されていないファイルや保留中の変更がないことを示していました。これにより、Git が追跡されているファイルのステータスをどのように報告するかについての理解が深まりました。