日本語 ▾ トピック ▾ 最新バージョン ▾ 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=<ファイル>

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

--skip-to=<ファイル>

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

-t <ツール>
--tool=<ツール>

<ツール> で指定された diff ツールを使用します。有効な値には、emerge、kompare、meld、vimdiff などがあります。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 <コマンド>
--extcmd=<コマンド>

差分を表示するためのカスタムコマンドを指定します。このオプションが指定されている場合、git-difftool は設定されたデフォルトを無視し、<コマンド> $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 ツールによって報告されたエラーは、デフォルトでは無視されます。--trust-exit-code を使用すると、呼び出された diff ツールがゼロ以外の終了コードを返した場合に git-difftool が終了します。

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

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

設定

difftool に対応する設定変数が定義されていない場合、git difftoolgit 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 変数が定義されている必要があります。

  • 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

デフォルトで diff.guitool を使用する(--gui 引数を指定するのと同等)には 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