git status コマンドの説明と例

ステータスコマンド Git

Gitは、コードの変更を追跡し、他の人と簡単にコラボレーションできるバージョン管理システムです。Gitは、さまざまなタスクを実行するための異なるコマンドを提供します。重要なコマンドの1つはgit statusで、これはファイルの現在の状態を表示します。これには、ステージされた変更、ステージされていない変更、または未追跡の変更が含まれます。この記事では、git statusコマンドを使用して、gitワークフローを効率的に管理する方法について説明します。

関連: Gitが初めての方は、Gitの初心者向けガイドをチェックしてください。

git statusとは

git statusコマンドは、プロジェクトの現在の状態を取得します。コミットの準備ができているファイル、ステージされていない変更があるファイル、Gitが追跡していない新しく作成されたファイルのリストを提供します。さらに、作業ディレクトリで何が起こっているか、次にどのようなアクションを取る必要があるかを確認するのに役立ちます。

git statusコマンドを使用する重要性

git statusコマンドを使用する重要性を示すいくつかの利点は次のとおりです:

  • 変更された、ステージされた、または追跡されていないファイルを表示します。
  • プロジェクトの現在の状態の概要を取得します。
  • コミットの準備ができている変更を理解するのに役立ちます。
  • git statusコマンドは、誤って不要なファイルをコミットするのを避けるのに役立ちます。
  • ワークフローをクリーンで整理された状態に保ちます。
  • ステージングエリアにファイルを含めるか除外するかを思い出させます。
  • マージコンフリクトのトラブルシューティングに役立ちます。

git statusを使用するタイミング

作業ディレクトリとステージングエリアの現在の状態を確認したいときは、git statusコマンドを実行します。開発者は、ファイルに変更を加えた後によくこのコマンドを使用します。さらに、変更されたファイル、コミットのためにステージされたファイル、未追跡のままのファイルを特定することができます。コミットの前にgit statusコマンドを実行することで、意図したすべての変更を含め、誤って不要なファイルをコミットするのを避けることができます。

さらに、git statusコマンドは、ブランチを切り替えたり、新しい変更をプルしたりする前にも使用できます。作業ディレクトリがクリーンか、保留中の更新があるかを示します。

git statusコマンドの使い方

任意のgitリポジトリの現在の状態を確認するには、git statusコマンドを実行します:

git status

出力は、リポジトリに変更や未追跡のファイルがないことを示しています。これは、作業ツリーがクリーンであることを意味します。

Gitの現在のステータスを確認

gitリポジトリに新しい空のファイルを作成しましょう:

touch new_file.txt

新しいファイルを作成

ファイルを作成した後、次のコマンドを使用してGitリポジトリのステータスを確認します:

git status

出力はUntracked files: new_file.txtを示します。これは、「new_file.txt」という名前のファイルがリポジトリに存在するが、Gitはまだそれを追跡していないことを意味します:

Gitステータス未追跡ファイル

未追跡のファイルをステージングエリアに移動するには、git addコマンドを適用します:

git add new_file.txt

新しいファイルの状態

次に、git statusコマンドを使用してリポジトリの現在の状態を監視します。出力は、コミットのための保留中の変更を表示します: 新しく追加されたファイル「new_file.txt」。これは、「new_file.txt」が正常にステージされ、コミットの準備ができていることを示しています:

Gitステータスステージングエリア

ステージされた変更を保存するには、以下のコマンドを実行します:

git commit -m "My first commit"

Gitコミット

「My first commit」を任意のカスタムメッセージに置き換えます。その後、git statusで現在のステータスを確認します。

メッセージ「nothing to commit, working tree clean」は、ファイルが正常にリポジトリに追加されたことを確認します:

Gitステータスコミット

「new_file.txt」をテキストエディタで開き、いくつかの変更を加えます:

ファイルを変更

次に、ファイルが編集されたときのステータスを確認するためにgit statusコマンドを実行します。今回は、Changes not staged for commit: modified: new_file.txtと表示されます。これは、ファイルが更新されたが、まだステージングエリアに追加されていないことを示しています:

ファイル編集後のGitステータス

更新されたファイルをステージングエリアに追加するには、次のコマンドを実行します:

git add new_file.txt

次に、以下のコマンドを実行して変更を適用します:

git commit -m "file has been modified"

変更されたファイルをコミット

次に、現在のgitステータスを確認します:

git status

出力スニペットは、作業ツリーがクリーンになったことを示しています:

コミットされたファイルのステータスを確認

rmコマンドを実行してファイルを削除しましょう:

git rm new_file.txt

ファイルを削除

出力では、gitはChanges to be committed: deleted: new_file.txtというメッセージを返します:

Gitステータスファイル削除を確認

その後、次のコマンドを使用して、リポジトリのコミット履歴にファイル削除を永久に記録します:

git commit -m "file has been deleted"

Gitコミット削除

最後に、以下のコマンドを実行してステータスを確認します:

git status

Git削除ステータスを確認

有用なgit statusオプション

git statusコマンドには、出力の表示方法を変更するためにさまざまなオプションを使用できます。たとえば:

  • git status --shortを使用して簡潔な要約を取得できます。
  • git status -uは、未追跡のファイルの表示方法を制御します。
  • git status -u=normalは、未追跡のファイルを通常の方法で表示します。
  • git status -u=allは、未追跡のディレクトリ内のすべての個別ファイルを表示します。
  • 未追跡のファイルなしでクリーンなビューを好む場合は、git status -u=noを使用できます。
  • git status --porcelainオプションは、スクリプトや自動化タスクに特に便利な機械可読形式で出力を提供します。

最後の考え

git statusコマンドは、現在の作業ディレクトリとステージングエリアの明確で詳細な概要を提供します。これにより、変更されたファイル、ステージされたファイル、未追跡のファイル、またはコミットの準備ができているファイルを理解するのに役立ちます。このコマンドを使用することで、ワークフローを整理し、不要な変更をコミットするのを避け、プロジェクトの現在の状態を常に把握できます。

git statusの他にも、gitフォルダ内のキャッシュを管理するためのgit cacheコマンドについても学ぶべきです。