Git
English ▾ トピック ▾ 最新バージョン ▾ git-difftool は 2.45.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.guitooldiff.toolmerge.tool の順にフォールバックして、ツールが見つかるまで続行します。

--[no-]trust-exit-code

デフォルトでは、diff ツールによって報告されたエラーは無視されます。呼び出された diff ツールが 0 以外の終了コードを返す場合に 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

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

difftool.<tool>.cmd

指定された diff ツールを呼び出すコマンドを指定します。指定されたコマンドは、次の変数が使用可能な状態でシェルで評価されます。LOCAL は diff 前画像の内容を含む一時ファイルの名前であり、REMOTE は diff 後画像の内容を含む一時ファイルの名前です。

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

difftool.<tool>.path

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

difftool.trustExitCode

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

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

difftool.prompt

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

difftool.guiDefault

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

参照

git-diff[1]

コミット間、コミットと作業ツリー間などの変更を表示する

git-mergetool[1]

マージ競合解決ツールを実行して、マージ競合を解決します。

git-config[1]

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

GIT

git[1]スイートの一部です。

scroll-to-top