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ライフを送りましょう。