Code Day's Night

ichikawayのブログ

Gitコマンドで行単位ではなく文字単位の差分表示を手に入れる

f:id:ichikaway:20160614182511p:plain

Githubを使っていると、diff表示が行単位ではなく文字単位になってて便利かと思います。手元の端末でも同じようにdiffを文字単位に表示したい時は、diff-highlightというスクリプトを使えばできます。表示は上の画像のようになります。

diff-highlightは、gitの公式リポジトリのcontribディレクトリの中にあって、perlのスクリプトファイルです。

https://github.com/git/git/tree/master/contrib/diff-highlight


一番簡単な設置は、/usr/local/binなどの場所にダウンロードして実行権限を与えればOK。

wget https://raw.githubusercontent.com/git/git/master/contrib/diff-highlight/diff-highlight

chmod 755 diff-highlight

 

軽く試したい時は、

git log -p --color | diff-highlight


すると文字単位のdiff表示になります。

 

diff-highlightにパイプで渡すのが面倒なので、.gitconfigに

    [pager]
	log = diff-highlight | less
	show = diff-highlight | less
	diff = diff-highlight | less

と書いておくと、git log, show ,diffの差分表示でdiff-highlightが適用された形になります。

 

もしgitのバージョンが古くて上記のgitconfigの記載でエラーになる場合は、

[core]
    pager = diff-highlight | less -r

と書いておくと良いかもしれません。