Claude Code diffコマンドの使い方と差分ビューアー操作
/diffはコミット前の変更とClaude Codeの各ターンの差分を確認するインタラクティブビューアーです。v2.1.222からraw git blob基準になり、textconvフィルタが効かなくなった仕様を解説します。
/diffは、コミット前の変更とClaude Codeの各ターンごとの差分を、左右キーで切り替えながら確認できるインタラクティブな差分ビューアーです。v2.1.222以降、差分はraw git blobコンテンツから計算されるようになり、.gitattributesやgit設定で仕込んだ差分ドライバーやtextconvフィルタは効かなくなりました。開いたままにしておくと、別ターミナルでのブランチ切り替えやコミットにも自動で追従します。引数は不要で、コマンドを覚えるだけで使い始められます。
/diffコマンドとは
/diffは公式ドキュメントで「Open an interactive diff viewer showing uncommitted changes and per-turn diffs(コミット前の変更とターンごとの差分を表示するインタラクティブな差分ビューアーを開く)」と定義されています。引数は不要で、Claude Codeのセッション内でそのまま実行します。
/diff表示されるのは2種類の差分ソースです。1つは現在のgit差分(コミット前の未反映の変更)、もう1つはClaude Codeの各ターンごとの差分です。左右キーでこの2種類を切り替え、上下キーでファイル一覧を移動します。
基本的な操作方法
/diffが開いた状態(DiffDialog)でのキー操作は次の通りです。
| 操作 | キー | 内容 |
|---|---|---|
| ビューアーを閉じる | キーEsc | 内容詳細ビューからは一覧へ戻る |
| 差分ソースの切り替え | キー左 / 右 | 内容現在のgit差分とターンごとの差分を切り替え |
| ファイル一覧の移動 | キー上・K / 下・J | 内容一覧を移動、詳細ビューでは1行スクロール |
| 詳細を開く | キーEnter | 内容選択したファイルの差分を表示 |
| スクロール | キーPageUp / PageDown / Space / Home / End | 内容詳細ビューでのページ送り |
詳細ビューの上下キー・PageUp・PageDown・Space・Home・Endは、一般的なページャー操作(スクロールアクション)に準じていますが、それぞれ動く幅が異なります。上下キー(またはK/J)は1行単位の細かい移動、PageUp/PageDownとSpaceは画面単位でまとめて送るページ送り、Home/Endは差分の先頭・末尾へ一気にジャンプする操作です。長いファイルの差分を大づかみに眺めてから該当箇所を1行ずつ確認する、という組み合わせ方ができます。差分詳細ビューはv2.1.149以降キーボードでのスクロールに対応しました。
rawなgit blobから差分を計算する仕様(v2.1.222で変更)
/diffが計算する差分は、raw git blobコンテンツが基準です。.gitattributesやgit設定で構成した差分ドライバー(diff driver)やtextconvフィルタは適用されません。v2.1.222より前は、こうしたワークスペース側の設定がビューアーの出力を書き換えることがありました。
この仕様変更は/diffだけでなく、Remote Controlのワークスペース差分と、Claude Code on the webセッションのファイル編集差分にも同時に適用されています。3つの差分表示すべてが同じraw blob基準に揃えられました。差分ドライバーやtextconvフィルタは、リポジトリの.gitattributesや個人のgit設定に依存するため、同じリポジトリでも開発者ごとの環境設定次第でビューアーの見え方が変わりうる状態でした。raw blobを基準にすることで、どの環境から/diffを開いても同じ差分が表示されるようになり、Claude Codeが変更内容を判断する材料も環境非依存になっています。
textconvやカスタム差分ドライバーを使っているリポジトリでは、/diffに表示される内容がgit diffコマンドの見た目と異なることがあります。これは不具合ではなく、v2.1.222以降の仕様です。フィルタ後の見た目を確認したい場合は、ターミナルで直接git diffを実行します。この変更を含む他の修正はClaude Code v2.1.222の詳細で確認できます。
ファイル一覧とターンごとの差分の見え方
現在のgit差分では、コミットしていないすべての変更がファイル単位で一覧されます。ターンごとの差分に切り替えると、Claude Codeが会話の中で行った編集を1ターンずつ区切って確認できます。まとめて一度に見るのではなく「どのターンで何を変えたか」を後から追いたいときに使う切り替えです。長いセッションで複数回のやり取りを重ねたあとは、最新ターンから遡りながらK/Jでファイル一覧を送り、気になるターンだけEnterで詳細を開いて確認する、という辿り方が向いています。まとめて全部読むより、変更が集中しているターンにねらいを絞れます。
自動更新に対応する
/diffを開いたまま作業を続けていて、別ターミナルでブランチを切り替えたりコミットしたりすると、ビューアーは自動でリフレッシュされます。この自動更新にはv2.1.198以降が必要です。それより前のバージョンでは、開いたままの/diffパネルがブランチ切り替えの後も更新されず、いったん閉じて開き直す必要がありました。v2.1.198はバックグラウンドエージェントの自走も同時に強化したバージョンです。
/code-reviewとの役割分担
/diffは差分を見るためのビューアーで、変更の中身を評価する機能は持ちません。正しさのチェックや改善提案が欲しい場合は/code-review(エイリアス/review)を使います。
| 観点 | /diff | /code-review |
|---|---|---|
| 役割 | /diff差分を表示するだけ | /code-review差分を読んでバグ・整理余地を指摘 |
| 対象 | /diffコミット前の変更・ターンごとの差分 | /code-review現在の差分、またはPR番号・ブランチ・パス指定 |
| 出力 | /diffインタラクティブなビューアー表示 | /code-review指摘のレポート(--fixで自動適用も可) |
| 向いている場面 | /diffマージ前に何が変わったか目視確認したいとき | /code-review正しさ・安全性をチェックしたいとき |
「何が変わったか」を素早く確認するだけなら/diffで十分ですが、実装のマージ前チェックとしては/code-reviewと組み合わせて使う場面が多くなります。Claude Codeのコマンド全体の役割分担はClaude Codeスラッシュコマンド一覧にまとめています。
フッターからの呼び出しとほかの表示との関係
/diffが開いた状態のダイアログ(DiffDialog)は、Claude Codeのフッターインジケーターからも辿れます。フッターにはタスク・チーム・差分・アーティファクトのナビゲーションがまとまっており、/diffと直接タイプする以外に、フッターの差分インジケーターを選んで開く経路も用意されています。2つの経路は開いた先の画面自体は同じですが、使いどころが異なります。コマンドを覚えていてすぐ差分だけ見たい場合は/diffと打つほうが早く、逆にフッターを目で追いながら作業していて「そういえば差分を確認したい」と気づいたときは、コマンドを打たずにフッターの差分インジケーターを選ぶほうが手が止まりません。長いセッションでいくつも変更を重ねたあと、どちらの経路からでも同じビューアーにたどり着けます。
差分ビューアーは単独の画面として閉じた状態を保つのではなく、バックグラウンドタスクやワークフローの詳細ビューと同じ操作体系(左キーで前の画面に戻る、という古い挙動)を共有していました。v2.1.203でこの左キーの挙動がまとめて見直され、バックグラウンドタスク・差分・ワークフロー詳細のいずれも、戻る操作はEscキーに統一されています。複数のビューを行き来する運用では、この統一によってキー操作を画面ごとに覚え分ける必要がなくなりました。
よくあるつまずき
git diffと表示内容が違う:textconvやカスタム差分ドライバーを設定しているリポジトリでは、v2.1.222以降/diffはraw git blobを表示するため、フィルタ後のgit diffとは見た目が変わります。仕様どおりです- ブランチを切り替えても
/diffが更新されない: v2.1.198より前のバージョンでは自動更新に対応していません。パネルを一度閉じて開き直します - 左キーで前の画面に戻れない: v2.1.203で、詳細ビューにおける左キーの「戻る」動作は削除されました。Escキーを使います
- 差分の中身を評価してほしいのに
/diffしか使っていない:/diffは表示専用です。バグ検出や改善提案が必要な場面では/code-reviewを併用します
よくある質問
/diffで見える差分はコミット済みの変更も含みますか
現在のgit差分ソースで表示されるのは、コミットしていない変更です。過去のコミット履歴を遡って比較する用途には向いていません。Claude Codeが会話の中で行った変更を振り返りたい場合は、ターンごとの差分ソースに切り替えます。
textconvフィルタを使っているのに反映されないのは不具合ですか
不具合ではありません。フィルタ後の見た目がどうしても必要な場合の代替手段としては、/diffを使わずターミナルでgit diffを直接実行する方法があります。git diffはワークスペースの.gitattributesやgit設定に従ってtextconvやカスタム差分ドライバーを適用するため、/diffとは見た目が異なって当然です。両者は「Claude Codeセッション内で素早く確認する」用途と「フィルタ適用後の正確な見た目を確認する」用途で役割が分かれていると捉えます。
/diffと/code-reviewはどちらを先に使いますか
順序に決まりはありませんが、役割が異なります。/diffは変更点を目視で確認するビューアーで、/code-reviewは差分を読んでバグや整理余地を指摘するチェックです。まず/diffで全体像をつかみ、必要に応じて/code-reviewで詳細な指摘を得るという使い方が実務的です。
/diffで開いた画面から直接編集できますか
/diffは表示専用のビューアーで、その場でファイルを編集する機能はありません。修正が必要な場合は、通常のプロンプトでClaude Codeに指示します。ファイル編集の権限プロンプトとは別の画面である点に注意します。
まとめ
/diffは、コミット前の変更とClaude Codeのターンごとの差分を、左右キーでソースを切り替えながら確認できるインタラクティブビューアーです。v2.1.222以降はraw git blobコンテンツを基準に差分を計算するため、textconvフィルタやカスタム差分ドライバーは効きません。v2.1.198以降は開いたままの状態でも外部のブランチ切り替え・コミットに自動追従します。差分の中身を評価したい場合は/code-reviewと組み合わせて使います。