delta: A Better Git Diff Pager (git-delta)
delta is a syntax-highlighting pager for git and diff output, adding language-aware colors, line numbers, and an optional side-by-side layout.
delta plugs into Git as the diff pager. It reads unified diff on stdin and re-renders it; the underlying diff is still Git's, so exit codes and gates are unaffected.
What it does
delta consumes a unified diff (from git diff, git show, or a pipe) and prints a syntax-highlighted, easier-to-read version. Configured as core.pager and interactive.diffFilter in Git, it becomes the default view. It does not compute diffs itself, so it never changes what Git reports.
Common usage
git diff | delta
git diff | delta --side-by-side --line-numbers
# make it Git's default pager
git config --global core.pager delta
git config --global delta.navigate trueOptions
| Flag | What it does |
|---|---|
| --side-by-side | Show old and new in two columns |
| --line-numbers | Show line numbers in the gutter |
| --navigate | Enable n/N navigation between files in the pager |
| --paging=never | Disable paging (needed in non-interactive CI) |
| --width <n> | Wrap output to n columns |
| --diff-so-fancy | Emulate diff-so-fancy styling |
In CI
In a pipeline delta must not page or it will hang: use delta --paging=never or set DELTA_PAGER=cat. delta is presentation only, so gate on the upstream git diff --exit-code, then pipe the same diff to delta for a readable log if the gate fails.
Common errors in CI
"delta: command not found" means the git-delta package is missing (the crate is git-delta; the binary is delta). A job that hangs after printing a diff is delta waiting in its pager; add --paging=never or DELTA_PAGER=cat. If Git says "cannot run delta: No such file or directory", core.pager points at a binary the runner does not have installed.