git diff を1文字単位で出力する
git diff
で差分を見られるが、1文字の差分でも行単位に差分が見えてしまうので、少々使いづらい。
そこで、--word-diff
というオプションを渡すと、単語単位で差分を表示してくれるようになる。
$ git diff --word-diff
コレでも十分見やすくはなったが、a = 1;
と a = 2;
といった行の差分を見た時に、a = 1;2;
というように、変更が入っていないセミコロン ;
まで差分かのように見えてしまう場合がある。
もう少し調べてみると、以下のような正規表現をオプションで渡してやることで、本当に差分がある 1
と 2
部分だけを色付けしてくれるように設定できた。
$ git diff --color-words --word-diff-regex='\\w+|[^[:space:]]'
~/.bashrc
でエイリアスに指定する時は、シングルクォートをエスケープして以下のように指定すれば良い。
# エイリアス「gdfw」として定義する
alias gdfw='git diff --color-words --word-diff-regex='\''\\w+|[^[:space:]]'\'''
~/.gitconfig
にエイリアスを指定する場合は以下のように書けば良い。
# Git エイリアス「git dfw」として定義する
[alias]
dfw = diff --color-words --word-diff-regex='\\w+|[^[:space:]]'