本文を読み飛ばす

Git の diff 表示を vimdiff で見る

Git での diff 表示を、vimdiff を使うことで「左右 2 画面」にて表示する方法について備忘録。

Git はローカル環境ですべて完結できるためちょっとしたお試しプロジェクトを作るには便利なツールで、 またコマンドラインツールの機能が充実しているので CUI オンリーな環境での開発時は Subversion より便利だと思って最近少し使っています (git VS svn の全面的な評価ではないのであしからず)。 特に git diff のカラー表示は非常に重宝するのですが、 GUI アプリの WinMerge や meld などのように左右に新旧のファイルを比較表示するツールと比べると、 さすがに読みやすさの点で劣ります。そこで、CUI 環境で左右に画面分割して比較を行う vimdiff を git の差分表示にて使えるよう設定する方法を調べてみました。

調べてみると非常に簡単です。Git は外部コマンドで差分表示を行う difftool というコマンドを備えていますので、このコマンド実行時に vimdiff を使うよう設定すれば良いだけです。 git はコマンドラインで設定を変更できるので、例えば次のようにコマンド実行すれば git difftool と実行した際に vimdiff が使われるようになります。

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global merge.tool vimdiff
git config --global mergetool.prompt false

以上の設定を行うと、git diff で次のような表示になるところ:

スクリーンショット 2014-11-24 18.07.31

git difftool では次のようになります:

スクリーンショット 2014-11-24 18.08.12

vimdiff は少々操作性に慣れが必要なツールです。 とりあえずコンソール上での左右分割表示を試してみたい場合、終了方法だけは覚えておきましょう。 :qa!エンターを叩けば終了します。