Install it (the package is called "git-delta" in most package managers, but the executable is just delta
) and add this to your ~/.gitconfig
:
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[add.interactive]
useBuiltin = false # required for git 2.37.0
[delta]
navigate = true # use n and N to move between diff sections
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
Delta has many features and is very customizable; please see the user manual.
- Language syntax highlighting with the same syntax-highlighting themes as bat
- Word-level diff highlighting using a Levenshtein edit inference algorithm
- Side-by-side view with line-wrapping
- Line numbering
n
andN
keybindings to move between files in large diffs, and between diffs inlog -p
views (--navigate
)- Improved merge conflict display
- Improved
git blame
display (syntax highlighting;--hyperlinks
formats commits as links to GitHub/GitLab/Bitbucket etc) - Syntax-highlights grep output from
rg
,git grep
,grep
, etc - Support for Git's
--color-moved
feature. - Code can be copied directly from the diff (
-/+
markers are removed by default). diff-highlight
anddiff-so-fancy
emulation modes- Commit hashes can be formatted as terminal hyperlinks to the GitHub/GitLab/Bitbucket page (
--hyperlinks
). File paths can also be formatted as hyperlinks for opening in your OS. - Stylable box/line decorations to draw attention to commit, file and hunk header sections.
- Style strings (foreground color, background color, font attributes) are supported for >20 stylable elements, using the same color/style language as git
- Handles traditional unified diff output in addition to git output
Code evolves, and we all spend time studying diffs. Delta aims to make this both efficient and enjoyable: it allows you to make extensive changes to the layout and styling of diffs, as well as allowing you to stay arbitrarily close to the default git/diff output.
delta with line-numbers activated
|
delta with side-by-side and line-numbers activated
|
Here's what git show
can look like with git configured to use delta:
"Dracula" theme | "GitHub" theme |
All the syntax-highlighting color themes that are available with bat are available with delta:
delta --show-syntax-themes --dark
|
delta --show-syntax-themes --light
|
[delta]
side-by-side = true
By default, side-by-side view has line-numbers activated, and has syntax highlighting in both the left and right panels: [config]
Side-by-side view wraps long lines automatically:
[delta]
line-numbers = true
Please see the user manual and delta --help
.