Git's default diff output is functional and hard to read: no syntax highlighting, whole lines marked changed when only a word moved, and columns that blur together on a big change. delta fixes all of it. It's a pager for git that adds language-aware syntax highlighting, word-level diff highlighting, optional side-by-side view, and line numbers - so a diff actually reads like code.
Diffs That Read Like Code
You wire it in once as git's pager and every git diff, git show, and git log -p gets the treatment:
# In ~/.gitconfig
[core]
pager = delta
[delta]
side-by-side = true
line-numbers = true
Word-Level Clarity
The feature you feel most is word-level highlighting: when you change one argument in a long line, delta highlights just that argument rather than flagging the whole line, so the actual change jumps out. On a dense refactor that's the difference between reading a diff and squinting at one.
Rough Edges and Limitations
- It's for viewing, not merging. delta prettifies diffs; conflict resolution is a different tool's job.
- Config to taste. The defaults are good, but side-by-side and themes reward a little tuning.
- Terminal-width sensitive. Side-by-side wants a reasonably wide terminal to shine.
Set it as your git pager once and you'll never want to read a raw diff again.
Internal link suggestion: link "conflict resolution" to the lazygit post for interactive git work, or to difftastic for structural diffs.