git diff の使い方

違いを見る

書き方

git diff
git diff --staged
git diff コミット コミット
git diff main..feature
git diff --stat

引数なしは作業ツリーとステージの違い、--staged はステージと最新コミットの違い。

よく使うオプション

オプション意味
--stagedステージした変更と最新のコミットの違い(--cached と同じ)
--statファイルごとの増えた行・減った行の数だけ出す
--name-only変わったファイルの名前だけ出す
-w空白の違いを無視する
--word-diff行ではなく単語ごとに違いを出す

例

$ git diff--- a/index.html
+++ b/index.html
@@ -3 +3 @@
-<h1>Welcome</h1>
+<h1>ようこそ</h1>

まだステージしていない変更を見ます。- が消した行、+ が足した行です。

$ git diff --staged

次のコミットに入る変更を、コミットの前に確かめます。

$ git diff main feature --stat search.js | 40 ++++++++++++
 index.html |  3 +-
 2 files changed, 42 insertions(+), 1 deletion(-)

main と feature のブランチで、どのファイルが何行違うかをまとめて見ます。

$ git diff HEAD~1 HEAD -- app.py

1 つ前のコミットと最新のコミットで、app.py がどう変わったかを見ます。

よくある間違い・注意

  • git add したあとの変更は、引数なしの git diff には出ません。--staged を付けて見ます。
  • 追跡していない新しいファイルは、git diff には出ません。

実際に打って練習する

Git コースの Lv7「違いを見る git diff」で覚えます(第1章 はじめての記録)。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜10 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Git コマンド一覧(使い方と例)へ戻る