Zum Inhalt springen

Delta Cheatsheet

Delta Cheatsheet

Installation

PlattformBefehl
Ubuntu/Debianwget https://github.com/dandavison/delta/releases/download/0.16.5/git-delta_0.16.5_amd64.deb && sudo dpkg -i git-delta_0.16.5_amd64.deb
Arch Linuxsudo pacman -S git-delta
Fedora/RHELsudo dnf install git-delta
Alpine Linuxapk add git-delta
macOS (Homebrew)brew install git-delta
macOS (MacPorts)sudo port install git-delta
Windows (Scoop)scoop install delta
Windows (Chocolatey)choco install delta
Windows (Winget)winget install dandavison.delta
Any (Cargo)cargo install git-delta
Verify Installationdelta --version

Grundlegende Befehle

BefehlBeschreibung
git config --global core.pager deltaDelta als Standard-Git-Pager festlegen
git diffNicht committete Änderungen mit delta anzeigen
git diff --cachedStaged Änderungen mit Delta anzeigen
git diff path/to/file.pyÄnderungen in bestimmter Datei anzeigen
git diff mainAktuellen Branch mit main vergleichen
git diff branch1..branch2Zwei Branches vergleichen
git show HEADLetzten Commit mit Diff anzeigen
git show abc123Spezifischen Commit mit Diff anzeigen
git log -pCommit-Verlauf mit Diffs anzeigen
git diff commit1 commit2Zwei spezifische Commits vergleichen
`diff file1.txt file2.txt \delta`
delta file1.txt file2.txtDateien direkt mit Delta vergleichen
delta --show-syntax-themesZeige alle verfügbaren Syntax-Themes
delta --list-languagesListe aller unterstützten Programmiersprachen
delta --show-configAktuelle Delta-Konfiguration anzeigen
git blame file.pyGit Blame mit Delta-Formatierung anzeigen
`git grep “function” \delta`
git diff --statDiff-Statistiken mit Delta anzeigen
`git diff -w \delta`
delta changes.diffEine gespeicherte Diff-Datei mit delta anzeigen

Erweiterte Nutzung

BefehlBeschreibung
`git diff \delta —side-by-side`
`git diff \delta —side-by-side —width 200`
`git diff \delta —line-numbers`
`git diff \delta —syntax-theme Monokai`
`git diff \delta —language python`
git config --global delta.side-by-side trueSeitlich-nebeneinander-Modus global aktivieren
git config --global delta.line-numbers trueZeilennummern global aktivieren
git config --global delta.navigate trueNavigations-Modus für das Springen zwischen Dateien aktivieren
git config --global delta.hyperlinks trueAktiviere klickbare Dateipad-Hyperlinks
git config --global diff.colorMoved defaultVerschobene Code-Blöcke hervorheben
git config --global pager.blame deltaDelta für git blame-Ausgabe verwenden
git config --global pager.grep deltaDelta für git grep Ausgabe verwenden
git config --global interactive.diffFilter "delta --color-only"Verwende delta in interaktiven Git-Befehlen
git blame -L 10,20 file.pyBlame für spezifischen Zeilenbereich mit delta anzeigen
git diff --word-diffZeige Unterschiede auf Wortebene mit Delta
git config --global delta.pager "less -RFX"Pager-Verhalten anpassen
git config --global delta.features "line-numbers decorations"Mehrere Features gleichzeitig aktivieren
`git diff —ignore-space-at-eol \delta`
git config --global delta.max-line-length 512Maximale Zeilenlänge für Anzeige festlegen
git config --global delta.tabs 4Tabulatorbreite für Anzeige festlegen

Konfiguration

Delta wird über das Konfigurationssystem von Git konfiguriert. Die Konfiguration kann global (~/.gitconfig) oder repositoryspezifisch (.git/config) festgelegt werden.

Grundlegende Konfiguration

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

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

Vollständiges Konfigurationsbeispiel

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    # General settings
    navigate = true
    light = false
    side-by-side = true
    line-numbers = true
    hyperlinks = true
    
    # Syntax highlighting
    syntax-theme = Monokai Extended
    
    # Layout
    width = 200
    tabs = 4
    wrap-max-lines = unlimited
    
    # Line numbers
    line-numbers-left-format = "{nm:>4}│"
    line-numbers-right-format = "{np:>4}│"
    line-numbers-minus-style = "red"
    line-numbers-plus-style = "green"
    line-numbers-zero-style = "white dim"
    
    # Colors and styles
    minus-style = syntax "#3f0001"
    minus-non-emph-style = syntax "#3f0001"
    minus-emph-style = syntax "#901011"
    minus-empty-line-marker-style = normal "#3f0001"
    
    plus-style = syntax "#002800"
    plus-non-emph-style = syntax "#002800"
    plus-emph-style = syntax "#007800"
    plus-empty-line-marker-style = normal "#002800"
    
    # Commit and file decoration
    commit-decoration-style = bold yellow box ul
    file-decoration-style = blue ul
    file-style = bold yellow ul
    hunk-header-decoration-style = blue box
    hunk-header-style = file line-number syntax
    
    # Whitespace
    whitespace-error-style = reverse red
    
    # Moved code detection
    color-moved-style = syntax

[diff]
    colorMoved = default

Benutzerdefinierte Funktionssätze

Wiederverwendbare Konfigurationsprofile erstellen:

[delta "my-dark-theme"]
    syntax-theme = Dracula
    line-numbers = true
    side-by-side = true
    navigate = true
    minus-style = syntax "#450a15"
    plus-style = syntax "#0a4514"

[delta "my-light-theme"]
    syntax-theme = GitHub
    light = true
    line-numbers = true
    side-by-side = false

[delta]
    features = my-dark-theme

Beliebte Syntax-Themes

  • Monokai Extended
  • Nord
  • Dracula
  • gruvbox-dark
  • gruvbox-light
  • Solarized (dark)
  • Solarized (light)
  • GitHub
  • OneHalfDark
  • OneHalfLight

Häufige Anwendungsfälle

Anwendungsfall 1: Täglicher Code-Review-Workflow

# Configure delta for optimal code review
git config --global core.pager delta
git config --global delta.side-by-side true
git config --global delta.line-numbers true
git config --global delta.navigate true

# Review changes before committing
git diff

# Review staged changes
git diff --cached

# Review specific file changes
git diff path/to/modified/file.js

Anwendungsfall 2: Vergleichen von Branches für Merge

# Compare feature branch with main
git diff main..feature-branch

# View side-by-side comparison with context
git diff main..feature-branch | delta --side-by-side --width 180

# Check for moved code blocks
git diff --color-moved main..feature-branch

# Review specific file differences between branches
git diff main..feature-branch -- src/app.py

Anwendungsfall 3: Untersuchung der Code-Historie

# View commit history with diffs
git log -p --follow path/to/file.py

# Compare specific commits
git diff abc123..def456

# Show changes in a specific commit
git show abc123

# View blame with delta formatting
git blame -L 50,100 src/main.rs

# Search for changes in history
git log -p -S "function_name" | delta

Anwendungsfall 4: Merge-Konflikt-Auflösung

# Enable side-by-side view for conflicts
git config --global delta.side-by-side true
git config --global delta.line-numbers true

# View conflicted files
git diff --name-only --diff-filter=U

# Examine conflicts in detail
git diff path/to/conflicted/file.py

# Compare with both parents during merge
git diff HEAD
git diff MERGE_HEAD

Anwendungsfall 5: Erstellen lesbarer Diff-Berichte

# Generate formatted diff for documentation
git diff main..feature > changes.diff
delta changes.diff > formatted-changes.txt

# Create side-by-side comparison
git diff --stat main..feature
git diff main..feature | delta --side-by-side --width 200

# Export with specific theme for presentations
git diff | delta --syntax-theme "Monokai Extended" --line-numbers

Best Practices

  • Delta global festlegen: Konfigurieren Sie git config --global core.pager deltaeinmal, um delta für alle Repositories zu verwenden und eine konsistente Diff-Ansicht zu gewährleisten.

  • Navigationsmodus aktivieren: Verwenden Sie git config --global delta.navigate truezum schnellen Springen zwischen Dateien in großen Diffs mit den Tasten n(nächste) und N(vorherige).

  • Passende Themes auswählen: Wählen Sie Syntax-Themes, die zum Hintergrund Ihres Terminals passen (dunkel/hell) und guten Kontrast bieten. Testen Sie mitdelta --show-syntax-themesum alle Optionen zu previews. side-by-side = truefür Code-Reviews und Merge-Vergleiche zu aktivieren, aber es für schnelle Checks auf schmalen Terminals zu deaktivieren, um Zeilenumbruchprobleme zu vermeiden. line-numbers = truefür Debugging und Code-Reviews, aber erwägen Sie, sie für einfache Diffs zu deaktivieren, um visuelle Unruhe zu reduzieren. diff.colorMoved = defaultzu setzen, um Code zu markieren, der verschoben und nicht geändert wurde, wodurch Refactoring-Reviews viel klarer werden. featuresfür verschiedene Workflows (z.B. “review”, “quick-check”, “presentation”) zu definieren und zwischen ihnen nach Bedarf mit der Option zu wechseln. width, tabs, und wrap-max-linesEinstellungen basierend auf Ihrer typischen Terminalgröße und Codierungsstandards anzupassen, um unpassende Zeilenumbrüche zu verhindern. interactive.diffFilter = delta --color-onlyzu konfigurieren, um deltas Highlighting in git add -pund anderen interaktiven Git-Befehlen zu erhalten. git config --global alias.review 'diff --color-moved'für standardisierte Review-Workflows zu erstellen.

Troubleshooting

ProblemLösung
Delta not being used for diffsVerify configuration with git config --global core.pager - should return delta. If not, run git config --global core.pager delta
Colors not displaying correctlyCheck terminal supports 24-bit color. Set COLORTERM=truecolor environment variable. Try different syntax themes with delta --show-syntax-themes
Side-by-side view is garbledTerminal width may be too narrow. Disable with git config --global delta.side-by-side false or increase terminal width. Adjust with --width option
Line numbers not showingEnable explicitly: git config --global delta.line-numbers true. Check that feature isn’t disabled in a custom feature set
Syntax highlighting not workingVerify file extension is recognized with delta --list-languages. Force language with --language option or check syntax-theme setting
Delta not working in git add -pSet interactive diff filter: git config --global interactive.diffFilter "delta --color-only". The --color-only flag is essential for interactive mode
Pager quits immediatelyAdjust pager settings: git config --global delta.pager "less -RFX". The -F flag causes less to quit if output fits on one screen
Performance issues with large diffsDisable side-by-side mode, reduce max-line-length, or use --syntax-theme none to disable syntax highlighting for faster rendering
Hyperlinks not clickableEnsure terminal supports hyperlinks (iTerm2, kitty, Alacritty). Enable with git config --global delta.hyperlinks true
Configuration not taking effectCheck for conflicting configs: `git config —list
Unicode characters displaying incorrectlyEnsure terminal uses UTF-8 encoding. Set LC_ALL=en_US.UTF-8 or similar locale. Check font supports Unicode characters used in decorations