日本語 ▾ トピック ▾ 最新バージョン ▾ git-difftool は 2.49.0 で最終更新されました

名前

git-difftool - 一般的な diff ツールを使用して変更を表示する

概要

git difftool [<options>] [<commit> [<commit>]] [--] [<path>…​]

説明

git difftool は、一般的な diff ツールを使用してリビジョン間のファイルを比較および編集できる Git コマンドです。git difftoolgit diff のフロントエンドであり、同じオプションと引数を受け入れます。git-diff[1] を参照してください。

オプション

-d
--dir-diff

変更されたファイルを一時的な場所にコピーし、それらに対してディレクトリ diff を実行します。このモードでは、diff ツールを起動する前にプロンプトは表示されません。

-y
--no-prompt

diff ツールを起動する前にプロンプトを表示しません。

--prompt

diff ツールを呼び出すたびにプロンプトを表示します。これはデフォルトの動作ですが、このオプションは設定を上書きするために提供されています。

--rotate-to=<file>

指定されたパスの diff の表示を開始します。そのパスより前のパスは最後に移動して出力されます。

--skip-to=<file>

指定されたパスの diff の表示を開始し、そのパスより前のすべてのパスをスキップします。

-t <tool>
--tool=<tool>

<tool> で指定された diff ツールを使用します。有効な値には emerge, kompare, meld, vimdiff などがあります。有効な <tool> 設定のリストについては、`git difftool --tool-help` を実行してください。

diff ツールが指定されていない場合、git difftool は設定変数 `diff.tool` を使用します。設定変数 `diff.tool` が設定されていない場合、git difftool は適切なデフォルトを選択します。

設定変数 `difftool.<tool>.path` を設定することで、ツールへの完全なパスを明示的に指定できます。たとえば、`difftool.kdiff3.path` を設定することで kdiff3 への絶対パスを設定できます。それ以外の場合、git difftool はツールが PATH で利用可能であると仮定します。

既知の diff ツールのいずれかを実行する代わりに、git difftool は設定変数 `difftool.<tool>.cmd` で呼び出すコマンドラインを指定することで、代替プログラムを実行するようにカスタマイズできます。

git difftool がこのツールとともに呼び出されたとき ( `-t` または `--tool` オプション、または `diff.tool` 設定変数を介して)、設定されたコマンドラインは以下の変数が利用可能な状態で呼び出されます: `$LOCAL` は diff プリイメージの内容を含む一時ファイルの名前に設定され、`$REMOTE` は diff ポストイメージの内容を含む一時ファイルの名前に設定されます。`$MERGED` は比較されているファイルの名前です。`$BASE` はカスタムマージツールコマンドとの互換性のために提供され、`$MERGED` と同じ値になります。

--tool-help

`--tool` とともに使用できる diff ツールのリストを出力します。

git difftool のデフォルトの動作は、`--dir-diff` モードで実行され、比較の右側がワーキングツリー内のファイルと同じ内容を生成する場合に、ワーキングツリーへのシンボリックリンクを作成することです。

`--no-symlinks` を指定すると、git difftool は代わりにコピーを作成するように指示されます。`--no-symlinks` は Windows でのデフォルトです。

-x <command>
--extcmd=<command>

diff を表示するためのカスタムコマンドを指定します。このオプションが指定されている場合、git-difftool は設定されたデフォルトを無視し、`<command> $LOCAL $REMOTE` を実行します。さらに、`$BASE` が環境に設定されます。

-g
--[no-]gui

git-difftool が `-g` または `--gui` オプションとともに呼び出された場合、デフォルトの diff ツールは `diff.tool` ではなく、設定された `diff.guitool` 変数から読み込まれます。これは、設定変数 `difftool.guiDefault` を使用して自動的に選択される場合があります。`--no-gui` オプションは、これらの設定を上書きするために使用できます。`diff.guitool` が設定されていない場合、ツールが見つかるまで `merge.guitool`、`diff.tool`、`merge.tool` の順にフォールバックします。

--[no-]trust-exit-code

diff ツールによって報告されたエラーはデフォルトで無視されます。呼び出された diff ツールがゼロ以外の終了コードを返した場合に git-difftool を終了させるには、`--trust-exit-code` を使用します。

`--trust-exit-code` が使用されている場合、git-difftool は呼び出されたツールの終了コードを転送します。

サポートされているオプションの完全なリストについては、git-diff[1] を参照してください。

設定

git difftool は、difftool に相当する変数が定義されていない場合、git mergetool の設定変数にフォールバックします。

このセクションのこの行より上の内容は、git-config[1] ドキュメントには含まれていません。以下の内容は、そちらにあるものと同じです

diff.tool

git-difftool[1] で使用される diff ツールを制御します。この変数は `merge.tool` で設定された値を上書きします。以下のリストは有効な組み込み値を示しています。それ以外の値はカスタム diff ツールとして扱われ、対応する `difftool.<tool>.cmd` 変数が定義されている必要があります。

diff.guitool

git-difftool[1] で -g/--gui フラグが指定されたときに使用される diff ツールを制御します。この変数は `merge.guitool` で設定された値を上書きします。以下のリストは有効な組み込み値を示しています。それ以外の値はカスタム diff ツールとして扱われ、対応する `difftool.<guitool>.cmd` 変数が定義されている必要があります。

  • araxis

  • bc

  • codecompare

  • deltawalker

  • diffmerge

  • diffuse

  • ecmerge

  • emerge

  • examdiff

  • guiffy

  • gvimdiff

  • kdiff3

  • kompare

  • meld

  • nvimdiff

  • opendiff

  • p4merge

  • smerge

  • tkdiff

  • vimdiff

  • vscode

  • winmerge

  • xxdiff

difftool.<tool>.cmd

指定された diff ツールを呼び出すコマンドを指定します。指定されたコマンドはシェルで評価され、以下の変数が利用可能です: LOCAL は diff プリイメージの内容を含む一時ファイルの名前に設定され、REMOTE は diff ポストイメージの内容を含む一時ファイルの名前に設定されます。

詳細については、git-difftool[1] の `--tool=<tool>` オプションを参照してください。

difftool.<tool>.path

指定されたツールのパスを上書きします。これは、ツールが PATH にない場合に便利です。

difftool.trustExitCode

呼び出された diff ツールがゼロ以外の終了ステータスを返した場合、difftool を終了します。

詳細については、git-difftool[1] の `--trust-exit-code` オプションを参照してください。

difftool.prompt

diff ツールを呼び出すたびにプロンプトを表示します。

difftool.guiDefault

`true` に設定すると、デフォルトで `diff.guitool` を使用します(`--gui` 引数を指定するのと同等です)。`auto` に設定すると、`DISPLAY` 環境変数の値の有無に応じて `diff.guitool` または `diff.tool` を選択します。デフォルトは `false` であり、`diff.guitool` を使用するには `--gui` 引数を明示的に指定する必要があります。

関連項目

git-diff[1]

コミット間、コミットとワーキングツリー間の変更などを表示する

git-mergetool[1]

マージ競合を解決するためのマージ競合解決ツールを実行する

git-config[1]

リポジトリまたはグローバルオプションを取得および設定する

GIT

git[1] スイートの一部

scroll-to-top