【GitHub】ファイル変更状況を確認するstatusコマンド【初心者のうちは頻繁に使っていこう】
こんにちは、ちくたっく(@tictak_py)です。
今回は、Gitコマンドの一つ「status」について紹介していきたいと思います。
具体的には、ワークツリー(フォルダ)で作業したファイルをステージに追加したかを確認したい時や、ローカルリポジトリに追加したかを確認したい時など、ローカルにおけるファイルの変更状況を把握したい時に使える方法となります。
「ステージ」や「ローカルリポジトリ」などの全体的なイメージが今一つわからない方は、以下記事を最初に読んでからこの記事を読んでもらった方が理解が進むかなと思います。
【初めての方向け】GitHubの全体像と使い方を解説します【gitコマンドの全体フロー図付き】
「GitHubってなに?コマンドとかよくわからない」といった方向けに、Gitコマンドの全体イメージをわかりやすく解説してみた記事です。コマンドを全部理解するのは大変ですが、基本コマンドさえ知っておけば十分使えるので、まずは基礎から学んでみましょう。
こんな方に読んで欲しい記事です
- Gitの「statusコマンド」でファイルの変更状況を確認出来るようになりたい方
- GitHubで使われている基本的なコマンドを学んでいきたい方
今回は、ローカルで作成したファイルに編集を加えつつ、「status」コマンドの挙動を確認していきます。
【GitHub】ファイルの変更状況を確認するコマンド

statusコマンド①:ファイル変更前
今回もわかりやすさを重視して、デスクトップ上に「github-basic」フォルダを作っておきます。そのフォルダ内に「hello.txt」という空のテキストを用意した状態で始めていきます。

いきなりですが、この状態で「status」コマンドを使ってみましょう。
「git status」のコマンドだけでOKです。

すると、上記のように「特にコミットするファイルはないよ」と表示されるかと思います。
ここでは、以前作成してコミット済のファイルを使っているので上記のように表示されていますが、今回初めてファイルを作成して「git status」コマンドを入力した方は、以下のように表示されているはずです。

この状態をスタートとして、変更を加えた上で「status」コマンドを用いるとどうなるかを見ていきます。
statusコマンド②:ファイル変更後+ステージ追加前
続いて、空のテキストファイル「hello.txt」にコメントを追加して上書きしましょう。
内容は何でもいいですが、今回は以下のように追加しておきました。

その上で、先ほどと同じく「git status」コマンドを入力して挙動を確認してみます。

すると、上記のような画面とメッセージが出てくるかと思います。
赤枠部分がポイントですが、「ステージされてない変更があるよ」と表示されています。
これは、作業フォルダ(ワークツリー)で変更されたファイルがあるけど、「git add」コマンドでステージに追加されていないファイルがあるという意味になります。
以前用いた全体図でイメージを補足すると、以下③(git add)を反映させる前の段階と言えますね。

statusコマンド③:ファイル変更&ステージ追加後+コミット前
先ほどは、「ステージに追加されていないファイルがあるよ」と表示されたので、次はgit addコマンドでステージに追加して、再度statusコマンドで挙動がどう変化するか確認してみます。

すると、「コミットすべき変更があるよ」と表示されていることがわかります。
先ほどの図と合わせてイメージ補足すると、④(git commit)を反映させる前の段階となります。

このように「status」コマンドを用いることで、ファイルの変更状況に応じて表示されるメッセージが異なることがわかります。
statusコマンド④:ファイル変更&ステージ追加後+コミット後
先ほどは、「コミットされていないファイルがあるよ」と表示されたので、続いてgit commitコマンドでローカルリポジトリに追加して、再度statusコマンドで挙動がどう変化するか確認してみます。

すると、「コミットすべき変更はないよ」と表示されることがわかります。
以上が、「git status」コマンドの基本的な使い方と全体イメージになります。
【参考】変更内容をGitHubに反映
ここは本題から外れるので参考程度ですが、編集した内容をGitHubに「pushコマンド」でアップロードしておきましょう。

GitHubを確認すると、以下のようにコミット時に追加した内容が反映されていることがわかりますね。

statusコマンド:オプション「-s」を使う
最後に、「status」コマンドの「オプション」を紹介しておきたいと思います。
今回紹介するオプションは、コマンドの後に「-s」をつける方法です。
一言で言えば、ファイルの変更状況に関する情報を色とアルファベットでシンプルに表示してくれます。テキストファイルに以下の内容を追記した上で、オプション付きコマンドの挙動を確認してみます。

各段階における「status」コマンドによる挙動を見てみると、以下赤枠のようにシンプルな表示がされていることがわかります。

ざっくりとした意味合いは以下のようになります。
詳細は公式ドキュメントに記載があるので、興味のある方は参考にしてみてください。
- 「M」:「変更」がある時に表示されるメッセージ
- 「A」:「追加」がある時に表示されるメッセージ
- 「D」:「削除」がある時に表示されるメッセージ
- 「??」:「Git管理」されていない時に表示されるメッセージ
- 赤色:ステージ追加前
- 緑色:ステージ追加後コミット前
さいごに
今回は、ファイルの変更状況を確認出来る「status」コマンドについて紹介してきました。
「コミットすべきファイルはあるかな?」など、現在の状況を確認したい時に使えるので、最初のうちは頻繁にこのコマンドを使って間違いのない作業が出来るように進めていきましょう。
では今回はこのへんで。