git difftool コマンド
git difftool外部差分ツールを使用して、ファイルの変更を表示・比較するためのコマンドです。
git difftoolこのコマンドは git diff コマンドの拡張であり、ファイル間の差分を解決するためのより直感的なビジュアルツールを提供します。コマンドラインツールではなくグラフィカルツールを好んでファイルの差分を処理したいユーザーに適しています。
基本構文
git difftool [<options>] [<commit> [<path>...]]
<commit>:比較するコミットを指定します。デフォルトは現在の作業ディレクトリの状態です。<path>:比較するファイルパスを指定します。
一般的なオプションと使い方:
| オプション | 説明 | 使用例 |
|---|---|---|
--tool=<tool> | 使用する外部差分ツールを指定します。デフォルトでは、Git は設定済みのデフォルト差分ツールを使用します。 | git difftool --tool=meld |
--tool-help | 利用可能な差分ツールのリストを表示します。 | git difftool --tool-help |
--dir-diff | ファイルごとではなく、ディレクトリ単位で比較します。 | git difftool --dir-diff |
--no-prompt | 各ファイルの確認プロンプトをスキップし、自動的にツールを使用して差分を表示します。 | git difftool --no-prompt |
--staged | ステージングされた変更と直前のコミットとの差分を比較します。 | git difftool --staged |
--cached | と--staged同様に、キャッシュされた変更と直前のコミットとの差分を比較します。 | git difftool --cached |
--merge | マージツール用で、競合を処理する際に差分を表示します。 | git difftool --merge |
--find-copies | ファイルのコピーと移動を検出します。 | git difftool --find-copies |
--find-copies-harder | ファイルのコピーと移動をより厳密に検出します。 | git difftool --find-copies-harder |
一般的な使い方
1、作業ディレクトリと直近のコミットの差分を表示
デフォルトの差分ツールを使用して、現在の作業ディレクトリ内の変更と直近のコミットとの差分を表示します:
git difftool
2、ステージングエリアと直近のコミットの差分を表示
デフォルトの差分ツールを使用して、ステージングエリア内の変更と直近のコミットとの差分を表示します:
git difftool --staged
3、特定のファイルの差分を表示
デフォルトの差分ツールを使用して、指定したファイルの変更を表示します:
git difftool <file>
例:
git difftool index.html
4、指定したツールを使用して差分を表示
meld ツールを使用して差分を表示します(Git 設定で meld を差分ツールとして設定する必要があります):
git difftool --tool=meld
5、ディレクトリ内で差分を表示
ファイルごとではなく、ディレクトリ内で変更を表示します:
git difftool --dir-diff
6、確認プロンプトをスキップ
確認を行わずに、自動的にツールを開いてすべてのファイルの差分を表示します:
git difftool --no-prompt
外部差分ツールの設定
Git 設定で外部差分ツールを設定できます。以下は meld ツールの設定例です:
git config --global diff.tool meld git config --global difftool.meld.cmd 'meld "$BASE" "$LOCAL" "$REMOTE" --diff "$MERGED"'
必要に応じて他のツール(kdiff3、vimdiff、opendiff など)を設定できます。具体的な設定方法は、ツール自体のコマンドラインインターフェースによって異なります。
その他の拡張
Git 基本操作