べくとりうむ.py Written by TicTak(※現在ブログ工事中のため、見づらい点があり申し訳ないです)

【GitHub】ファイル変更状況を確認するstatusコマンド【初心者のうちは頻繁に使っていこう】

Git Programming Basic

こんにちは、ちくたっく(@tictak_py)です。

今回は、Gitコマンドの一つ「status」について紹介していきたいと思います。

具体的には、ワークツリー(フォルダ)で作業したファイルをステージに追加したかを確認したい時や、ローカルリポジトリに追加したかを確認したい時など、ローカルにおけるファイルの変更状況を把握したい時に使える方法となります。

「ステージ」や「ローカルリポジトリ」などの全体的なイメージが今一つわからない方は、以下記事を最初に読んでからこの記事を読んでもらった方が理解が進むかなと思います。

こんな方に読んで欲しい記事です

  • Gitの「statusコマンド」でファイルの変更状況を確認出来るようになりたい方
  • GitHubで使われている基本的なコマンドを学んでいきたい方

今回は、ローカルで作成したファイルに編集を加えつつ、「status」コマンドの挙動を確認していきます。

【GitHub】ファイルの変更状況を確認するコマンド

statusコマンド①:ファイル変更前

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

デスクトップの「github-basic」フォルダ内のイメージ

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

「git status」コマンド①(ファイル変更前)

すると、上記のように「特にコミットするファイルはないよ」と表示されるかと思います。

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

「git status」コマンド①(ファイル新規作成時)

この状態をスタートとして、変更を加えた上で「status」コマンドを用いるとどうなるかを見ていきます。

statusコマンド②:ファイル変更後+ステージ追加前

続いて、空のテキストファイル「hello.txt」にコメントを追加して上書きしましょう。
内容は何でもいいですが、今回は以下のように追加しておきました。

「hello.txt」に内容を追加

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

「git status」コマンド②(ファイル変更後)

すると、上記のような画面とメッセージが出てくるかと思います。
赤枠部分がポイントですが、「ステージされてない変更があるよ」と表示されています。

これは、作業フォルダ(ワークツリー)で変更されたファイルがあるけど、「git add」コマンドでステージに追加されていないファイルがあるという意味になります。

以前用いた全体図でイメージを補足すると、以下③(git add)を反映させる前の段階と言えますね。

【補足イメージ】上記③「git add」前に表示されるメッセージ

statusコマンド③:ファイル変更&ステージ追加後+コミット前

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

「git status」コマンド③(ステージ追加後)

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

【補足イメージ】上記④「git commit」前に表示されるメッセージ

このように「status」コマンドを用いることで、ファイルの変更状況に応じて表示されるメッセージが異なることがわかります。

statusコマンド④:ファイル変更&ステージ追加後+コミット後

先ほどは、「コミットされていないファイルがあるよ」と表示されたので、続いてgit commitコマンドでローカルリポジトリに追加して、再度statusコマンドで挙動がどう変化するか確認してみます。

「git status」コマンド④(ローカルリポジトリ追加後)

すると、「コミットすべき変更はないよ」と表示されることがわかります。
以上が、「git status」コマンドの基本的な使い方と全体イメージになります。

【参考】変更内容をGitHubに反映

ここは本題から外れるので参考程度ですが、編集した内容をGitHubに「pushコマンド」でアップロードしておきましょう。

「git push」コマンドでGitHubに公開

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

GitHubに修正内容が反映されていることを確認

statusコマンド:オプション「-s」を使う

最後に、「status」コマンドの「オプション」を紹介しておきたいと思います。
今回紹介するオプションは、コマンドの後に「-s」をつける方法です。

一言で言えば、ファイルの変更状況に関する情報を色とアルファベットでシンプルに表示してくれます。テキストファイルに以下の内容を追記した上で、オプション付きコマンドの挙動を確認してみます。

テキストファイルに追記

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

「git status -s」コマンドを用いた場合の挙動

ざっくりとした意味合いは以下のようになります。
詳細は公式ドキュメントに記載があるので、興味のある方は参考にしてみてください。

  • 「M」:「変更」がある時に表示されるメッセージ
  • 「A」:「追加」がある時に表示されるメッセージ
  • 「D」:「削除」がある時に表示されるメッセージ
  • 「??」:「Git管理」されていない時に表示されるメッセージ
  • 赤色:ステージ追加前
  • 緑色:ステージ追加後コミット前

さいごに

今回は、ファイルの変更状況を確認出来る「status」コマンドについて紹介してきました。

「コミットすべきファイルはあるかな?」など、現在の状況を確認したい時に使えるので、最初のうちは頻繁にこのコマンドを使って間違いのない作業が出来るように進めていきましょう。

では今回はこのへんで。