コンテンツにスキップ
GitTree
Git ガイド2 分で読みました

git diff の使用方法: コミット、ブランチ、ファイル、およびサイドバイサイド

1 つのコマンドで、作業フォルダー、ステージング領域、コミット、ブランチ、タグを比較します。ここでは、それぞれにどの形式を使用するか、2 つのドットと 3 つのドットが異なる理由、および実際の並べての差分を取得する方法を示します。

作者 Kodmora

GitTree の背後にあるソフトウェア ハウス

更新されました
  • コミット履歴
  • ブランチ
  • コミット
このページでは

`git diff` に引数を指定しないと、ステージングされていない変更が表示されます。 `git diff --staged` は次のコミットに含まれる内容を示し、`git diff main feature` は 2 つのブランチを比較します。 1 つのファイルに制限するには、任意のフォームに -- path/to/file を追加します。 Git 自体には、ターミナルに並べて表示する機能がありません。そのためには、git difftool または Git GUI が必要です。

どの git diff コマンドが必要ですか?

git diff の各形式の比較
見たいです指示
変更はまだステージングされていませんgit diff
次のコミットに含まれる内容git diff --staged
最後のコミット以降のすべてgit diff HEAD
2 つのコミットgit diff <a> <b>
2本のブランチ、先端から先端までgit diff main feature
分岐後にブランチが追加したものgit diff main...feature
2 つのタグgit diff v1.0 v2.0
1つのファイルgit diff -- src/search.ts

git diff 出力を読み取るにはどうすればよいですか?

diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
   const terms = tokenize(query);
-  return index.find(terms, { limit: 20 });
+  return index.find(terms, { limit: 50 });
 }
  • --- と +++ は、ファイルの古いバージョンと新しいバージョンの名前です。
  • @@ -12,7 +12,7 @@ はハンク ヘッダーです。各バージョンの 12 行目から 7 行目です。
  • - で始まる行は削除され、+ を持つ行が追加されました。残りはコンテキストです。

差分の読み取りレッスン では、これを段階的に練習します。

2 つのコミットを比較するにはどうすればよいですか?

# any two commits, older first
git diff 3e52f10 7c1d9ab

# the last commit against the one before it
git diff HEAD~1 HEAD

# one commit against its parent, with the message
git show 7c1d9ab

2 つのブランチを比較するにはどうすればよいですか?

# the tips of both branches
git diff main feature

# only what feature added since it left main
git diff main...feature

# a remote branch
git fetch origin
git diff main origin/main

1 つのファイルを差分するにはどうすればよいですか?

# working copy against the last commit
git diff HEAD -- src/search.ts

# the same file on two branches
git diff main feature -- src/search.ts

# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts

# two files outside any repository
git diff --no-index old.txt new.txt

git diff で空白を無視するにはどうすればよいですか?

git diff の空白オプション
オプション無視するもの
-w または --ignore-all-space再インデントされた行を含むすべての空白
-b または --ignore-space-change空白の量の変化
--ignore-space-at-eol行末の空白
--ignore-blank-lines空白行の追加または削除

これらは diff が示す内容にのみ影響します。ステージングまたはコミットされる内容は変更されません。 -w は、再インデントによってファイル全体が変更されたように見える場合に到達するものです。

変更されたファイルのみをリストするにはどうすればよいですか?

# names only
git diff --name-only main...feature

# names with A, M, D or R
git diff --name-status main...feature

# lines added and removed per file
git diff --stat main...feature

どの単語が変更されたのかを確認するにはどうすればよいですか?

git diff --word-diff
git diff --color-words

Word の差分は、Markdown 段落など、1 つの単語が変更されると行全体が変更されたものとしてマークされる長い行の場合に役立ちます。

左右の差分を取得するにはどうすればよいですか?

プレーン git diff は 1 列を印刷し、並べて表示するオプションはありません。 2 つの列を取得するには、diff プログラムで git difftool を指定する方法、delta などの端末ページャーをインストールする方法、または Git GUI を使用する方法の 3 つがあります。

# pick a tool once
git config --global diff.tool vimdiff

# open each changed file in it
git difftool main...feature

# skip the prompt for each file
git difftool -y

GitTree で並列差分を読み取る方法

  1. 差分を開く

    作業中の変更またはコミットで変更されたファイルを選択します。

  2. ビューを選択してください

    差分の上の 差分ビュー で、Hunk、Inline、または Split を選択します。 分割は前後を並べて表示します。

  3. 調整してください

    コマンド パレットから、差分の空白を無視、変更された単語を強調表示、または差分行を折り返すを実行します。

  4. 2 つのブランチを比較する

    参照の比較… を実行して、任意の 2 つのブランチ、タグ、またはコミットを選択し、マージ ベース以降またはチップツーチップ以降の変更を確認します。

GitTree での差分を分割ビューに切り替えます: 前後、並べて表示します。
GitTree での差分を分割ビューに切り替えます: 前後、並べて表示します。GitTree はデモ リポジトリとのインターフェイスです。

すべてのオプションについては、差分ビューの選択と使用 および 参照の比較 を参照してください。

よくある質問

git diff に何も表示されないのはなぜですか?

おそらく変更は段階的に行われています。 git diff は作業フォルダーとステージング領域を比較するため、git diff --staged または git diff HEAD を実行します。新しい追跡されていないファイルは、追加するまで表示されません。

git diff と git status の違いは何ですか?

git status には、変更されたファイルがリストされます。 git diff 内の変更された行を表示します。

ブランチとメインを比較するにはどうすればよいですか?

ブランチの作業のみを表示するには、git diff main...HEAD を実行します。最初に取得し、origin/main を使用して最新のリモート バージョンと比較します。

git diff --cached は --staged と同じですか?

はい。これらは同じオプションの 2 つの名前です。

差分をファイルに保存するにはどうすればよいですか?

git diff > changes.patchを実行します。 パッチの作成と適用方法 に示すように、ファイルは後で適用できます。

情報源

他の製品に関する申し立ては、2026年11月7日 の公式ページと照合して確認されました。価格と機能は変更されます。ベンダーのページが真実の情報源です。