Gitは、ソフトウェア開発やファイル管理で欠かせないバージョン管理システムです。中でも頻繁に使われる基本コマンドの一つが git status です。このコマンドは、自分が今どんな作業状態にあるのか、どのファイルが変更され、どのファイルがステージング(インデックス)にあるのかを確認するために使います。
この記事では、Git初心者でも理解できるように、git status コマンドの基本的な使い方から、実際の出力例、よくある誤解や注意点まで、わかりやすく丁寧に解説していきます。Gitの基本を押さえたい方は、ぜひ最後まで読んでみてください。
git statusとは何か?
git status は、現在のGitリポジトリにおける作業ディレクトリとステージングエリアの状態を表示するコマンドです。
簡単に言えば、「今、自分がどんな作業をしているのか」を確認するためのツールです。
主に表示される内容:
- どのブランチにいるのか
- コミットしていない変更があるか
- ステージされている変更(
git add済み)かどうか - トラッキングされていないファイル(Gitの管理下にないファイル)があるか
このコマンドは、コミット前の確認作業として非常に重要です。たとえるなら、飛行機の離陸前チェックのようなもの。状態を把握せずに次の操作をすると、思わぬミスにつながることがあります。
git statusの基本的な使い方
基本の使い方は非常にシンプルで、以下のように実行するだけです。
git status
これにより、今いるローカルリポジトリの状態が表示されます。特別なオプションをつけなくても、十分に有用な情報を得ることができます。
例えば、次のような出力が得られるかもしれません:
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: index.html
Untracked files:
(use "git add <file>..." to include in what will be committed)
newfile.txt
ここでは、index.html は変更されているけれどまだステージされていない状態、newfile.txt はGitがまだ管理していない(Untracked)ファイルであることがわかります。
ステージとワーキングツリーの違いを理解しよう
git status の出力を理解するには、「ワーキングツリー」と「ステージングエリア(インデックス)」の違いを知ることが重要です。
- ワーキングツリー:実際に作業しているローカルファイルの状態
- ステージングエリア:
git addした変更が一時的に保存されている場所
この2つの領域の違いを把握することで、git status の表示もより明確に理解できるようになります。
例:
- ファイルを編集 → ワーキングツリーに変更あり
git addを実行 → ステージングエリアに変更が反映git commit→ リポジトリに変更が確定
git status は、上記のどの段階にあるのかを視覚的に教えてくれる重要なツールです。
よくあるgit statusの出力パターン
実際にgit statusを使っていてよく見るパターンをいくつか紹介します。
1. すべてがコミット済みの状態
On branch main
nothing to commit, working tree clean
→ これはリポジトリに未コミットの変更が一切ない状態。理想的なクリーンな状態です。
2. 変更があるが未ステージ
Changes not staged for commit:
modified: script.js
→ ファイルは変更されたが、git add されていない状態です。
3. ステージ済みでコミット待ち
Changes to be committed:
new file: style.css
→ この状態では、次の git commit で style.css がリポジトリに追加されます。
4. トラッキングされていないファイル
Untracked files:
notes.txt
→ Gitが管理していない新規ファイルです。git add することでトラッキング可能になります。
よくあるミスと注意点
ステージし忘れ
git commit をしても変更が反映されていない場合、多くは git add を忘れていることが原因です。git status を確認すればすぐに気づけるので、こまめなチェックが大事です。
トラッキングされていないファイルの見落とし
新しいファイルを作ったのにリモートに反映されない場合、Untracked files に気づいていないことがよくあります。git status はこの点を的確に教えてくれます。
意図しないファイルのステージ
時には誤って .env やログファイルなどをステージしてしまうこともあります。git status で確認し、必要なら git reset で戻しましょう。
git statusを使ったおすすめ運用フロー
Git初心者がミスを防ぐための、簡単で実践的なフローを紹介します。
- 変更前に
git pullで最新化 - 作業中もこまめに
git status - 編集後、
git addの前にgit statusで確認 git commit実行前に最終確認のgit status- 問題なければ
git push
このように、節目ごとに git status を使うことで、事故のリスクを大幅に減らすことができます。
git statusのショートカットや補足情報
現時点では git status に明確なショートカットはありませんが、以下のような応用テクニックもあります。
git status -s:短縮表示(-sは--shortの略)- 通常の出力が簡略化され、確認が素早くできます。
- 例: rubyコピーする編集する
M index.html ?? newfile.txt
aliasを使ってgstにする: bashコピーする編集するgit config --global alias.gst status→git gstで同様の結果が得られます。watchコマンドと組み合わせて自動表示: bashコピーする編集するwatch -n 2 git status→ 2秒おきにgit statusを表示し続ける(開発中の状況把握に便利)
まとめ:git statusは開発の道しるべ
git status は、Gitを使うすべての人にとって必須の確認ツールです。特に初心者にとっては、操作ミスや意図しないコミットを防ぐための「安全装置」のような役割を果たします。
Git操作に自信がないうちは、何か作業をするたびに git status を使うことをおすすめします。慣れてくると自然と状況を把握しながら作業できるようになります。
まずは「こまめに確認」を意識して、安心・安全なGitライフを送りましょう。
