git status

作業中のファイルが、いまどの段階にあるかを一覧で見せる。ファイルもコミットも変えない。

実行前の状態

README.md を 1 回コミットしたあと、README.md に 1 行足し、新しく app.py を作った場面です。どのファイルが変わり、どれが次のコミットに入るのかを確かめたいときに打ちます。

この状態を手元で作るなら、次の順に打ちます。

ターミナル

git init -q -b main hello
cd hello
echo "# hello" > README.md
git add README.md
git commit -q -m "README を作る"
echo "start" >> README.md
echo "print('hi')" > app.py

最小の例と結果

ターミナル

git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   README.md

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

no changes added to commit (use "git add" and/or "git commit -a")
  • On branch main は、いま main ブランチにいるという意味です。
  • Changes not staged for commit の下は、変えたけれど、まだ add していないファイルです。README.md がここに出ます。
  • Untracked files の下は、Git がまだ一度も記録していないファイルです。新しく作った app.py がここに出ます。

成功の確認

出てきたファイル名が、自分で変えたファイルと合っていれば読めています。短く見たいときは -s を付けます。

ターミナル

git status -s
 M README.md
?? app.py

左の 2 文字が状態です。1 文字めはステージ (次のコミットに入れる物) の状態、2 文字めは作業中のファイルの状態を表します。M は変更、?? はまだ記録していないファイルです。

構文と主要オプション

書き方すること
git statusいまのブランチと、ファイルの状態を詳しく出す
git status -s1 ファイルを 1 行の短い形で出す
git status -sb短い形の頭に、ブランチの行を足す
git status <パス>指定したファイルやフォルダだけを見る
git status --ignored.gitignore で外したファイルも出す

失敗時の戻し方

git status は読むだけのコマンドです。ファイルの中身もコミットも変えないので、戻す操作はありません。

よく出るのは、リポジトリの外で打ったときの次のエラーです。

ターミナル

git status
fatal: not a git repository (or any of the parent directories): .git

cd でリポジトリのフォルダへ移ってから打ち直します。git init は新しいリポジトリを作るコマンドなので、すでにあるリポジトリの外で打ち直しには使いません。

よくある疑問

push が弾かれたとき、何を見ればいいですか

先に git fetch で GitHub などの最新を取り込み、そのあと git status を打ちます。Your branch is behind と出たら、相手の側にだけ新しいコミットがあります。have diverged と出たら、自分と相手の両方に別々のコミットがあります。

どちらの場合も、強制 push で上書きすると相手のコミットが消えます。behind なら git pull で相手のコミットを取り込みます。have diverged のときは、取り込み方を決めていないと git pull だけでは止まります。git pull --no-rebase で 2 つをまとめるコミットを作って取り込みます (メッセージを書くエディタが開いたら、そのまま保存して閉じます)。衝突が出たら直してから push し直します。

git status を打つと、何かが変わりますか

ファイルの中身もコミットも変わりません。何度打っても大丈夫です。迷ったら、どのコマンドの前後でも打って状態を確かめます。

日本語のファイル名が "\343\201\202..." のような数字の列になります

Git は英数字以外のファイル名を、既定で数字の列に置き換えて出します。git config --global core.quotePath false を一度打つと、日本語のまま出るようになります。

確かめた Git の版 2.50.1 (Apple Git-155)確認日 2026年10月17日正本は Git 公式マニュアル (英語)

Git コマンド辞典の索引へ戻る