Git入門 その14 / git diff
環境 git version 1.8.3.1
■ git diff
gitに関わる差分を表示する。
ローカルディレクトリ(ワークツリー)とステージングエリア(インデックス)の差分を表示。
ただし新規ファイルのdiffは取れない。
$ git diff
ステージングエリア(インデックス)とHEADの差分を表示
$ git diff --cached
ローカルディレクトリ(ワークツリー) + ステージングエリア(インデックス)とHEADの差分を表示
$ git diff HEAD
HEADと一つ前のブランチの差分を表示
$ git diff HEAD^ HEAD
ブランチ間の差分を表示
$ git diff X Y
X,Yはgit logの
commit a35d8a266387edca8ca6b5097bcfc5ec066b2dee
のsha1を使う。前方7桁でもOK。
つまり
commit 1f49f277d00efac2cd3289991f4351bfbbe4a736
commit 618dc77fe8913fb9645a503a66e259b95fe1bd37
の差分を知りたい場合
$ git diff 618dc77 1f49f27
でdiffを取れる。
+--------------------------+
| ローカルリポジトリ Y |
+--------------------------+
^
| git diff X Y
v
+--------------------------+
| ローカルリポジトリ X |
+--------------------------+
^
| git diff HEAD^ X
v
+--------------------------+
| ローカルリポジトリ HEAD^ |
+--------------------------+
^
| git diff HEAD^ HEAD
v
+--------------------------+
| ローカルリポジトリ HEAD |<--+
+--------------------------+ |
^ |
| git diff --cached |
v | git diff HEAD
+----------------------+ |
| ステージングエリア | -+ |
+----------------------+ | |
^ | |
| git diff |<---+
v |
+----------------------+ |
| ローカルディレクトリ | -+
+----------------------+
その他オプション
オプション | 説明 |
---|---|
--color-words | 差分に色を付けて表示 |
--check | 空白だけの変更を警告する |
--ignore-space-change | 空白だけの変更を無視する |
takafumi-s.hatenablog.com