git statusの全て|基本から使えるオプションまでを徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年8月)

✔このような方へおすすめの記事です:

「git statusコマンドって何ができるんだろう?」

「git statusコマンドの使用方法を学びたい」

「git statusコマンドの具体的な使用例を知りたい」

✔当記事を通じて伝える内容:

  • git statusコマンドの概要
  • git statusコマンドの使い方とその活かし方
  • git statusコマンドの実際の使用事例

当記事では、git statusコマンドの基本的な概念から、その詳細なオプションを効率的に利用する方法まで、現実的な例を交えて詳細に解説します。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

「git status」の紹介

こちらでは、「git status」についてお伝えしていきます。

これにより、Gitでの開発フローをより効率的に管理できるでしょう。

  • Gitと”git status”コマンド
  • 関連するGitコマンドの一覧
  • “git status”コマンドの基本的な説明

Gitと”git status”コマンドの紹介

Gitは、ソースコードのバージョン管理をおこなうための分散型バージョン管理システムです。

その中で、”git status”コマンドはリポジトリ内のファイルの現在の状態を表示するもの。

これにより変更が追跡されているか、コミットが必要か、などの情報をすぐに得られます。

% git status
On branch main
Your branch is up to date with 'origin/main'.

こちらはローカルリポジトリが正常に同期されている状態を表しています。

関連するGitコマンドの一覧

“git status”は、ほかの多くのGitコマンドと組み合わせて使用します。

以下は主要なコマンドと思われる一部です。

コマンド名説明具体例
git init新しいリポジトリを初期化するgit init
git cloneリポジトリをクローンするgit clone https://github.com/user/repo.git
git add変更をステージングエリアに追加するgit add README.md
git commitステージングエリアの変更をコミットするgit commit -m "Add README"
git pushローカルの変更をリモートリポジトリにプッシュするgit push origin master
git pullリモートリポジトリから変更を取得し、現在のブランチに統合するgit pull origin master
git branchブランチを一覧表示するか、新しいブランチを作成するgit branch feature-branch
git checkout特定のブランチやコミットに切り替えるgit checkout feature-branch
git merge2つのブランチを統合するgit merge feature-branch
git rebaseブランチを再ベースするgit rebase master
git logコミットの履歴を表示するgit log
git statusワーキングディレクトリの状態を表示するgit status
git diff変更の差分を表示するgit diff
git reset現在のHEADを指定した状態にリセットするgit reset --hard HEAD^
git rmファイルをワーキングディレクトリとインデックスから削除するgit rm file.txt
git stash変更を一時的に保存するgit stash save "temporary changes"
git tag特定のコミットにタグをつけるgit tag v1.0.0

これらのコマンドはgitの基本的な操作に使用されます。使い方に応じてオプションや引数を追加することで、多岐にわたる作業が可能です。

“git status”コマンドの基本的な説明

“git status”コマンドは非常にシンプルです。

ターミナル上で、Gitリポジトリのディレクトリに移動し、次のように入力します。

$ git status

実行すると、現在のブランチと、変更がステージされているか、変更がコミットされていないかなど、各ファイルの状態が表示されます。

「git status」コマンドの具体的な使い方

次に、「git status」コマンドの具体的な使い方について詳しく解説します。

これにより、より具体的な操作と結果について理解を深められるでしょう。

  • 基本的な使用法
  • 対話形式の事例紹介
  • エラーや複雑な状況での使用例
  • 「.gitignore」ファイルとの関連性

基本的な使用法

“git status”コマンドは、Gitリポジトリ内の状態を照会するために使用します。

基本的な使用法は非常にシンプルで、リポジトリのルートディレクトリに移動し、以下のように入力しましょう。

$ git status

現在のブランチと、変更がステージされているか、未ステージの変更があるか等、各ファイルの状態が表示されます。

対話形式の事例紹介

以下に、”git status”コマンドの基本的な使用例を対話形式で示します。

1.まず、”readme.txt”という新しいファイルを作成します。

$ touch readme.txt

Linuxのtouchコマンドについてはこちらをご覧ください。

2.その後、”git status”を使って状態を確認します。

$ git status

3.出力結果は次のようになります。

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

  readme.txt

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

これにより、”readme.txt”が新規作成されて追跡されていないことが確認できます。

エラーや複雑な状況での使用例

“git status”コマンドは、Gitリポジトリの複雑な状況を理解するのにも役立ちます。

例えば、マージコンフリクトが発生したとき、”git status”を実行してください。

コンフリクトが発生しているファイルがリストされ、それを解決するための手順が示されます。

「.gitignore」ファイルとの関連性

“.gitignore”ファイルは、Gitに対して特定のファイルまたはディレクトリを無視させるために使用するもの。

一時ファイルやビルド結果などの不要なファイルが、ステージングエリアやコミットに含まれるのを防げます。

無視されたファイルは”git status”に表示されません。

例えば、”temp/”というディレクトリを.gitignoreファイルに追加した場合、そのディレクトリ内の全てのファイルはGitによって無視され、”git status”の結果には表示されません。

「git status」コマンドの活用

こちらでは、git statusコマンドの活用方法を具体的にご覧いただきます。

  • ファイルがない状態の対応
  • 変更したファイルがある状態の対応
  • 新規作成したファイルがある状態の対応
  • ステージエリアへのファイル追加
  • 出力情報の読み解き方

ファイルがない状態の対応

新しくGitリポジトリを作成した場合、リポジトリ内には何もファイルが存在しない状態になります。

この時、”git status”を実行しても、「コミットするファイルはありません」というメッセージが表示されます。

$ git init
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

この状態から変更を加えていくことで、Gitが追跡を開始します。

変更したファイルがある状態の対応

既に存在するファイルに対して変更を加えたうえで”git status”を実行すると、「変更がまだコミットされていない」というメッセージが表示されます。

例えば、既存の”readme.txt”ファイルを編集した後、”git status”を実行すると以下のようになります。

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

  modified:   readme.txt

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

新規作成したファイルがある状態の対応

新規にファイルを作成した場合も、”git status”コマンドはその情報を反映します。

新規作成したファイルは「Untracked files」として表示

例えば、新規に”newfile.txt”を作成した後、”git status”を実行すると以下のようになります。

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

  newfile.txt

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

ステージングエリアへのファイル追加

“git add”コマンドでファイルをステージングエリアに追加した後、”git status”を実行しましょう。

「Changes to be committed」と表示され、次のコミットに含まれる予定の変更が一覧表示されます。

例はこちらです。

$ git add newfile.txt
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

  new file:   newfile.txt

出力情報の読み解き方

“git status”コマンドの出力は、各ファイルの状態を理解するのに役立つ情報を含んでいます。

具体的には以下のようなことが確認可能です。

  • 次のコミットに含まれる予定の変更(ステージングエリア)
  • まだステージングされていない変更(ワーキングディレクトリ)
  • Gitによって追跡されていない新しいファイル

これらの情報を元に、適切な操作(”git add”, “git commit”等)をおこなえます。

「git status」の便利なオプション

git statusの便利なオプションを見ていきましょう。

オプションを覚えておくと、応用した使い方ができるようになります。

  • 新規と変更したファイルの状態を一覧表示
  • ステージエリアへのファイル追加の一覧表示
  • ブランチ情報の表示オプション

新規と変更したファイルの状態を一覧表示

git status-s または --short オプションを使用すると、新規で作成もしくは変更したファイルの一覧を簡略化して表示可能です。

通常の git status の出力よりも情報量が少ないですが、一覧性が向上するメリットがあります。

$ git status -s
 M readme.txt
?? newfile.txt

Mと??は意味を持ちます。

  • M:modified(変更済み)
  • ??:untracked(追跡されていない)

ステージングエリアへのファイル追加の一覧表示

以下の状態でgit status -s コマンドを実行すると、新規に追加されたファイル(A)として表示されます。

新規ファイルを作成 > ステージングエリアに追加

$ touch anotherfile.txt
$ git add anotherfile.txt
$ git status -s
 M readme.txt
A  anotherfile.txt
?? newfile.txt

ブランチ情報の表示オプション

git status コマンドで-b または --branch オプションを使用すると、デフォルトのブランチ名に加え、詳細なブランチ情報(例えば、アップストリームとの差異)を表示できます。

$ git status -b
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

  new file:   anotherfile.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

  modified:   readme.txt

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

  newfile.txt

まとめ

当記事では、「git status」コマンドについて学習してきました。

「git status」コマンドは、Gitリポジトリの現在の状態を理解するための最も基本的なツールです。

このコマンドを用いることで、作業中のプロジェクトの状態を瞬時に把握し、次に何をすべきかを明確にできます。

Gitは機能が非常に多いため、全てを覚えるのは難しいかもしれません。

しかし、「git status」のような基本的なコマンドを理解しておくことは、効率的なバージョン管理をおこなう上で非常に重要です。

さらに深く学びたい場合は、以下のリンクより、当サイトの記事で興味のあるものをお探しください。

Gitの基本まとめ|初心者でも必ずマスターできる
Git/GitHubについて学びたいですか?当サイトでは、現役エンジニアが実体験を元にGitのポイントを丁寧に解説。実際のコマンドなど手を動かしながら学べるので、Git初心者必見です。
タイトルとURLをコピーしました