git-delta Review: The Diff Pager That Made Me Actually Read My Diffs Dev Tools

git-delta Review: The Diff Pager That Made Me Actually Read My Diffs

by Joule P. Kraft · July 20, 2026

As an Amazon Associate I earn from qualifying purchases. No affiliate relationship influences my recommendations.

I look at diffs constantly. Before a commit, during a review, when I am trying to remember what past-me was thinking, when a build breaks and I need to know what moved. It is one of the most frequent things I do at a terminal, and for years I did it staring at git’s default output: red lines, green lines, no syntax highlighting, and the mental overhead of scanning a whole changed line to find the one character that actually moved.

A year ago I put delta in front of git as my pager, and I have not looked at a raw git diff since. This is the honest review after a year of living with it, not a first-impression tour.

What delta Is

delta is a syntax-highlighting pager for git, written in Rust by Dan Davison. “Pager” is the key word. It does not replace git, it does not wrap git, and it does not add commands. It sits in the exact spot where less normally sits, catches the diff output on its way to your screen, and renders it as something a human can actually read.

That framing matters because it explains why delta is so painless to adopt. You do not learn new commands. You keep typing git diff, git show, git log -p, exactly as you always have. delta just makes what comes back look dramatically better. It is the smallest possible change to your muscle memory for one of the biggest improvements to your daily terminal experience.

The Syntax Highlighting Is the Whole Pitch

Here is the thing plain git diff gets wrong: it colors lines by whether they were added or removed, and that is all. A removed line is red, an added line is green, and the actual code inside those lines is undifferentiated text. Your brain has to parse the syntax itself while also tracking the add/remove state.

delta highlights the code inside the diff by file type, using the same kind of grammar-aware coloring your editor uses. A changed Python function looks like Python. A tweaked block of JSON looks like JSON. Keywords, strings, and identifiers all get their colors, layered on top of the add/remove coloring. Suddenly a diff reads like code with changes marked, instead of a two-color wall of text you have to decode.

This sounds like a cosmetic nicety until you spend a week with it and then, on some other machine without it, hit a plain diff and feel how much slower you read. That was the moment it stopped being a toy for me. The highlighting is not decoration, it is a genuine reduction in the effort it takes to understand a change.

Word-Level Diffs Are the Feature I Did Not Know I Needed

The feature that actually earns delta a permanent spot is word-level highlighting. In a normal diff, if you change one argument in a long function call, git shows you the entire old line in red and the entire new line in green, and you play spot-the-difference to find what moved.

delta highlights the specific characters that changed within the line. The unchanged parts of the line are dimmed, and the actual edit, the one renamed variable, the flipped boolean, the added argument, is lit up. On a line where you changed timeout=30 to timeout=60, delta points at the 30 and the 60 and leaves the rest quiet. For catching the kind of tiny, easy-to-miss change that causes real bugs, this is worth the install on its own.

Side-by-Side Mode

Turn on side-by-side and delta splits the diff into two columns, old on the left, new on the right, with line numbers down both sides. For anything more than a trivial change, this is how a diff wants to be read. Instead of mentally interleaving minus and plus lines, you see the before and after next to each other, the way a code review tool in a browser shows it, except in your terminal against your local repo.

I keep it on, but with one honest caveat: side-by-side is hungry for horizontal space. On a narrow terminal or a laptop screen with a sidebar open, the columns get cramped and long lines wrap awkwardly. On a wide monitor it is glorious. delta is smart enough that you can leave it on and it will still render readably when the window is narrow, but the feature clearly wants a wide window to shine. If you live on a small screen, you may prefer to leave side-by-side off and lean on the inline word-level highlighting instead.

Setup: One Config Block and You Are Done

Installation is a single package on every platform: brew install git-delta on macOS, or your distro’s package manager on Linux. Then you point git at it in your ~/.gitconfig. Here is the config I have settled on after a year of tuning:

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true
    line-numbers = true
    side-by-side = true

[merge]
    conflictStyle = zdiff3

The core.pager line is the one that does the real work: it makes delta the pager for every diff-producing git command at once. The interactive.diffFilter line extends the prettified output to git add -p, so even interactive staging gets the delta treatment. Inside the [delta] block, navigate = true lets you jump between files in a big diff by pressing n and N, line-numbers adds the gutter, and side-by-side turns on the two-column view. Drop the side-by-side line if you are on a narrow screen.

That is the entire setup. No shell aliases, no wrapper scripts, no change to how you invoke git. You edit one config file once and every diff you look at from then on is better.

The Config Rabbit Hole Is Real

If there is a knock on delta, it is that the customization surface is enormous. There are themes, syntax-highlighting color schemes, decoration styles for file headers and hunk markers, options for how blame and grep output render, and a long list of style strings you can tune to the pixel. Someone who enjoys dotfile gardening can lose an afternoon in the delta docs, and the screenshots that sell the tool are often running a carefully tuned theme rather than the plainer defaults.

I want to be clear that this is optional. The defaults are perfectly good, and the four-line config above gets you 90 percent of the value. But if you open the manual expecting a quick read, know that there is a deep well of options behind the simple surface. That is a strength if you like tuning and a mild time sink if you do not have the discipline to stop.

Beyond git diff

delta is marketed as a git pager, but it prettifies more than diffs. Point it at git blame and you get syntax-highlighted blame output that is far easier to read than the raw version. It handles git log -p, git show, and git stash show -p for free because those all flow through the pager. Newer versions even understand grep and rg --json output, so a ripgrep search can come back syntax-highlighted through delta. It quietly improves a whole cluster of terminal tasks, not just the one it is named after.

Once you have delta wired into your blame output, git blame stops being the punishment it used to be. Tracking down when a line was introduced, and reading the surrounding context in color, turns a chore into something you will actually reach for instead of avoiding. The same goes for git log -p when you are archaeology-digging through history to understand a decision. These are all things I did grudgingly before delta and do freely now, purely because the output stopped fighting me.

Who Should Install It

If you work in a terminal and read git diffs there, install delta today. It is free, open source, and the payoff is immediate for a five-minute setup. There is essentially no learning curve because it changes nothing about how you use git, it only changes what git shows you.

The one group who will shrug is people who never leave a GUI. If you do all your diffing inside VS Code’s diff view or a tool like a graphical git client, you already have syntax-highlighted, side-by-side diffs, and delta is solving a problem you do not have. delta is for the terminal-first crowd, and for that crowd it is close to essential.

The Bottom Line

delta is one of those rare tools that makes something you already do many times a day noticeably better without asking you to change a single habit. Set it as your git pager once, and every diff, blame, and log you look at from that moment on is syntax-highlighted, word-level accurate, and, if you want it, laid out side by side like a real review. The customization can swallow an afternoon if you let it, and side-by-side wants a wide screen, but the defaults are excellent and the four-line config is all most people will ever need. After a year I would sooner give up half my shell aliases than go back to reading plain git diffs. For a free install that takes five minutes, that is about the best return a dev tool can offer.