git diff is correct. It is also how eyes go to die at 1am. delta is the pager that makes the patch human again.
delta (package name git-delta on most systems) is a syntax-highlighting pager for git and diff output. Line-oriented unified diffs become structured: file headers, hunks, word-level emphasis, and optional side-by-side. You do not change your git workflow — you change what your eyes receive when git talks. Two config lines and every git diff, show, log -p, and add -p review gets clearer. It plays nicely with lazygit and plain CLI alike.
install
# macOS
brew install git-delta
# Debian/Ubuntu
sudo apt install git-delta
# Fedora
sudo dnf install git-delta
# Arch
sudo pacman -S git-delta
examples
# One-shot: page a single command through delta
git -c core.pager=delta log -1 --stat
# Make it permanent in ~/.gitconfig
git config --global core.pager delta
git config --global interactive.diffFilter 'delta --color-only'
git config --global delta.navigate true
git config --global delta.line-numbers true
# Side-by-side when the terminal is wide enough
git config --global delta.side-by-side true
# Diff two branches the way your brain expects
git diff main...HEAD | delta
# Works on plain diff too
diff -u old.conf new.conf | delta
pro tip
navigate true lets you jump files inside a multi-file diff with n/N — once you have it, bare less feels broken. If colors clash with your theme, delta themes= and catppuccin/one-dark ports exist; start with defaults before theming rabbit holes.
honest limits
delta is a pager, not a merge tool — conflicts still need mergetool/vimdiff/vscode. Huge binary-ish diffs or generated lockfiles will still hurt; path exclude in git attributes helps more than any pager. Side-by-side needs width; on a 80-col SSH session stick to unified. And never set core.pager=delta on a machine where colleagues parse git output in CI — scope it to your interactive global config, not the shared repo.