Gitコマンド虎の巻

git diff

git diffは、ブランチやインデックス間の差分を確認するコマンドです。

構文

git diff [オプション] [比較対象1] [比較対象2]

※ [比較対象1]と[比較対象2]は、指定有無で以下のように差分対象が判断されます。

  • 両方省略 → ワークツリーとインデックスの差分を表示
  • [比較対象1]のみ指定 → ワークツリーと[比較対象1]の差分を表示
  • 両方指定 → [比較対象1]と[比較対象2]の差分を表示
【オプション】
オプション説明
--cachedインデックスと最新コミット(HEAD)の差分を表示する
--name-only差分があったファイル名のみ表示する
--helpコマンドのヘルプをブラウザで表示する
--stat差分の統計情報のみ表示する

サンプル

ワークツリーとインデックスの差分を表示する

git diff

追跡対象となっていないファイルは表示されません。

ワークツリーとHEADの差分を表示する

git diff HEAD

インデックスと最新コミット(HEAD)の差分を表示する

git diff --cached

結果として、次回コミット対象となるファイルの一覧が表示されます。

ローカルの最新コミットとリモートのmasterブランチの差分を確認する

git diff HEAD..origin/master

最新のコミットと一つ前のコミットの差分を表示する

git diff HEAD^..HEAD

windowsコマンドプロンプトでは、HEAD^を"HEAD^"とする必要があります

コミットID「5c40128」「9d16907」の差分を表示する

git diff 5c40128..9d16907

コミットIDはgit logで確認できます。
(コミットIDは40桁あるが、先頭の7桁を指定すればOK)

ブランチ「develop」と「eda01」の差分を表示する

git diff develop eda01

ファイル「hoge.txt」のみ、リポジトリと作業フォルダの差分を表示する

git diff hoge.txt

ワークツリーとインデックスの差分を表示する(ファイル名のみ)

git diff --name-only

HEADから2つ前のコミットとの差分を表示する

git diff HEAD~2

HEADとHEAD~の差分の統計情報のみ表示する

git diff HEAD HEAD~ --stat

備考

  • diffは「ディフ」と読みます。
  • 比較対象を2つ並べる時、スペースで区切っても「..」で区切っても同じです。
    (例)以下2つは同じ意味です。
     git diff HEAD..HEAD~
     git diff HEAD HEAD~

関連項目