git status

コマンドの概要

ワーキングツリーおよびインデックスにおけるファイルの新規作成、削除、変更を確認できるコマンド。

  • 新規作成ファイルなど、ワーキングツリーに存在するがまだGitに捕捉されていないもの
  • ワーキングツリーとインデックスで内容が異なっているもの
  • 前回コミットとインデックスで内容が異なっているもの

git commitでコミットする前に、"インデックス"に意図通りステージングされているか確認するコマンドである。
変更された差分を確認するにはgit diff --cached

インデックスのファイルの状況を確認する方法

デフォルトではワーキングツリー全体を対象とする。

1$ git status

ディレクトリの指定やカレントディレクトリ以下を示す.を指定も可

1$ git status <directory>
2$ git status .

ショートフォーマット

git statusではgit status -sによるショートフォーマットが有用。ショートフォーマットのときには、-bオプションも同時に利用してブランチ名も表示した方が便利。

// 前回コミット後に foo.md を編集、bar.md を新規作成した場合
$ git status -s

 M foo.md
?? bar.md

// git add すると
$ git add .
$ git status -s

M  foo.md
A  bar.md

ファイル名の前は、左の列がインデックス、右の列がワーキングツリーのステータスを示している。
ステータスの内容は以下の通り

  = unmodified : 変更なし
M = modified   : 変更あり
A = added      : 追加
D = deleted    : 削除
R = renamed    : リネーム
U = Updated but unmerged : 変更されたがマージされていない