AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

git に difftastic を設定して入門したけど従来のコマンドも使えるようにする

追記:2026/01/09

diffstatic と書いていたけど、 difftastic でした……すんませへぇ〜ん!

ほんぶん

前回、 git diff で呼び出される標準の diff と difftastic で検出結果が一致しない (パッと見わからない) という話をかいた。

donbulinux.hatenablog.jp

でも通常の利用だと difftastic 強力なんだよな〜どうしたもんかな〜、と悩んでいたのだけど、「いや別に alias 書いてどっちも使える状態にしとけばいいじゃん!」となった。

頭が硬いゆえの解決方法にたどり着くまでの時間……!

どうする

公式で以下のように alias のおすすめ設定を書いてくれている。

difftastic.wilfred.me.uk

自分の環境では ~/.gitconfig に以下のように書いた。

[alias]
  # https://difftastic.wilfred.me.uk/git.html#regular-usage
  # Difftastic aliases, so `git dlog` is `git log` with difftastic and so on.
  dlog = -c diff.external=difft log --ext-diff
  dshow = -c diff.external=difft show --ext-diff
  ddiff = -c diff.external=difft diff

これで git log -> git dlog, git show -> git dshow, git diff -> git ddiff と単純に置換してあとはオプションを従来通りに付与すれば良い。

よくお世話になっている amazon-ecs-exec-checker とかで git dlog -p -3 などすると、最初の表示は以下のように整形される。

github.com

ところで git show と git log -p -1 って何が違うんすかね

おーええやん。

この状態で従来のコマンド git log -p -3 とすると、デフォルト動作を保持できている。

開発環境以外で git サブコマンド使う場合を考えると慣れておいた方が良い

ということで

検索すると、わりとみんな「全部 difftastic で修飾 (デフォルト化) してしまう」内容を書いており、そうなんだけど……という先入観が強くなってしまっていたので、これでヨイ。

平定! やったぜ。