dreamin' blog

私がgitを使う上でもっとよく使うコマンドは git status です。
git status はgit管理されているファイルの状態を確認するコマンドです。

git管理されているファイルの状態について

git ではファイルの状態がいくつかあります。

untracked file

ファイルがgitリポジトリに登録されていないファイルです。
この状態のファイルは、 git clean することで、ファイル自体を削除することができます。 (本当は git clean -fd しないと消えない)

staged file

staged file はgitリポジトリにコミットする準備が整っているファイルです。

untracked file に対して git add することで、 staged file にするになります。

staged file に対してコミットを行うと index file になります。

ファイルがgitのリポジトリにコミットする準備が整っているファイルです。
このまま git commit を行うとリポジトリに登録が行われ、indexファイルになります。

git reset を使用すると
新しく作られた staged file 追加されたファイルは、untracked fileになります。
変更されたファイルは、変更前になります。

またコンフリクトしたファイルは、この状態同じになります。

index file

index file はgitリポジトリに管理されているファイルです。
index file を編集しても git checkout で最新のコミットの状態に簡単に戻すことができます。

git status -s -bのすすめ

僕はgit statusは常に git status -s -b を使用します。

-b はブランチを表示、 -s はショートタイプで表示されます。

( -b はgit 1.7.2以降で使用可能です)

$ git status -s -b
## master
M  a
A  b
?? c

Mは index file を編集した状態
Aは新規にbを staged file にした状態
??のcはまだ untracked file の状態です。

このように、ファイルの確認を感覚的に確認することができます。