git difftool

ターミナルでコミット間のdiffを見比べるツールとして、パッチ形式のgit diffサブコマンドが知られています。
gitにはこの他にgit difftoolというサブコマンドがあり、外部の差分編集ツールで編集できます。

git difftoolで使用するツールはgit configで設定可能です。

$ git config [--global] diff.tool vimdiff
$ git config [--global] difftool.prompt false

difftool.promptは、ツール起動前の確認を省略するオプション(デフォルトはtrue)です。
vimdiffはvimが入っている環境のTUIで動作するためポータブルです。GUIでは meldも人気があります。

vimdiffの場合

vimdiffのデフォルト設定ではreadonlyで起動するためdiffを見比べる操作になりますが、.vimrcに以下の設定を追加しておくと編集可能になります。

set noro

vimdiffは2ペインで比較表示し、do(obtain), dp(put)という独特なコマンドで差分を反映できます。
複数ファイルで変更があるケースでは、各ファイルを:qなどで閉じていくと次の差分比較に移ります。

中馬崇尋
Chuma Takahiro