AI時代に備えて、git diff を見直す
TL;DR
最近 Claude Code を使うことが増えて、AI が書いたコードを確認する機会も多くなった。
自分のコードだけであれば、素の git diff
で十分だと思っていたが、他人 (AI) が書いたそれなりのボリュームだと見切れないことが増えてきたので、dandavison/delta を導入して差分表示を改善した。
背景
プライベートでは Claude Code にコードを書いてもらうことがめっぽう増えた。
まだまだ手直しが必要になる場面もあるが、少なくとも 0 から自分で書くことはほとんどなくなった。
単純に指示や CLAUDE.md
が十分ではないだけなことも多い。
(それをちゃんと整備する時間が取れていないのでサボってる)
自分で書いたコードを確認する場合には、ほぼ素の git diff
で済むことが多かった。
しかし AI の書いたそれなりのボリュームのコードを確認する場面には、git diff
だけでは見づらいことが多い。
そこで git diff
を見直してみることにした。
色々調べた結果、dandavison/delta を導入することにした。
決め手は以下の 3つ
- 導入がすぐにできた
- それなりに簡単に見た目を細かく設定できる
side-by-side
表示ができる
設定内容
.gitconfig の設定
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true # n/N で移動できるようになる
side-by-side = true # side-by-side 表示
keep-plus-minus-markers = true # + - のマーカーを残す
line-numbers = true # 行番号を表示
dark = true
これだけですでにいい感じになる
theme の設定
せっかくならと思いテーマの設定をあれこれいじってしまった

以下の設定で上記のような見た目になり、大満足となった
※ 細かい部分はなんで動くのかよくわかってない
※ ghostty-org/ghostty を使ってるので設定が同じでも完全に同じ見た目にはならないかもしれない
[delta "my-theme"]
# based on "mantis-shrimp-lite" and "chameleon"
# features
dark = true
side-by-side = true
keep-plus-minus-markers = true
line-numbers = true
# general
## diff でその行が削除された場合や新規に追加された場合で色が適用されなかったので個別に上書きしている
map-styles = \
bold purple => bold brightred, \
bold cyan => bold brightgreen
# file decorations
file-added-label = [+]
file-copied-label = [==]
file-modified-label = [*]
file-removed-label = [-]
file-renamed-label = [->]
file-style = brightwhite bold
file-decoration-style = "#434C5E" ul
# commit
commit-style = yellow bold italic
commit-decoration-style = yellow ul
# diff decorations
hunk-header-style = omit
plus-style = brightgreen bold
plus-emph-style = brightgreen bold
plus-non-emph-style = bold
minus-style = brightred bold
minus-emph-style = brightred bold
minus-non-emph-style = bold
## line numbers
line-numbers-left-format = " {nm:>3} │"
line-numbers-left-style = "#434C5E"
line-numbers-right-format = " {np:>3} │"
line-numbers-right-style = "#434C5E"
line-numbers-minus-style = brightred italic black
line-numbers-plus-style = brightgreen italic black
line-numbers-zero-style = "#434C5E" italic
ちなみに以下の設定も別途必要になるので注意
設定の詳細は Custom themes の章を参照してほしい
[include]
path = /path/to/themes.gitconfig
[delta]
features = my-theme
まとめ
AI 時代になってコードレビューの重要性が増している中で、 git diff
を見直して dandavison/delta を導入した。
設定も簡単だし、見た目のカスタマイズもいろいろとできて大満足となった。