Delta Cheatsheet¶
Installazione¶
Tabella_116_
Comandi di base¶
Tabella_117_
Uso avanzato¶
Tabella_118
Configurazione¶
Delta è configurato tramite il sistema di configurazione di Git. La configurazione può essere impostata globalmente (~/.gitconfig) o per-repository (.git/config).
Configurazione di base¶
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
line-numbers = true
side-by-side = true
Esempio di configurazione completa¶
[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
Set di funzionalità personalizzate¶
Crea profili di configurazione riutilizzabili:
[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
Popular Syntax Themes¶
- Ehi!
NordDraculagruvbox-darkgruvbox-light - Ehi!
Solarized (light)__INLINE_CODE_68_ - E' vero. __INLINE_CODE_70_
Common Use Cases¶
Use Case 1: Daily 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
Use Case 2: Comparing Branches for 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
Use Case 3: Investigation Code History¶
# 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
Use Case 4: Merge Conflict Resolution¶
# 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
Use Case 5: Creazione di report diff leggibili¶
# 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
Migliori Pratiche¶
-
Set delta globalmente. Configurare
git config --global core.pager deltauna volta per utilizzare il delta per tutti i repository, garantendo un'esperienza di visualizzazione costante diff. -
Abilita la modalità di navigazione: Utilizzare
git config --global delta.navigate trueper saltare rapidamente tra i file in grandi diff utilizzando i tastin(next) eN(previous). -
Ocere appropriato temi: Selezionare i temi sintassi che corrispondono al vostro sfondo terminale (dark/light) e fornire un buon contrasto. Prova con
delta --show-syntax-themesper visualizzare in anteprima tutte le opzioni. -
**Utilizzare le recensioni ** Abilita
side-by-side = trueper le recensioni dei codici e unisci i confronti, ma disattivalo per i controlli rapidi sui terminali stretti per evitare problemi di fasciatura della linea. -
Configurare i numeri di linea strategicamente: Abilitare i numeri di linea per il debugging e le recensioni di codice (INLINE_CODE_77_), ma prendere in considerazione la disabilitazione per semplici diff per ridurre il disordine visivo.
-
**Rilevamento del codice spostato*: Impostare
diff.colorMoved = defaultper evidenziare il codice che è stato spostato piuttosto che cambiato, rendendo le recensioni refactoring molto più chiaro. -
Crea set di funzioni personalizzati: Definire più configurazioni delta per diversi flussi di lavoro (ad esempio, "review", "quick-check", "presentation") e passare tra loro secondo le necessità utilizzando l'opzione
features_. -
Ottimizzare per il flusso di lavoro Regolare
width,tabs, ewrap-max-lines_ in base alle vostre tipiche dimensioni del terminale e agli standard di codifica per evitare interruzioni di riga scomode. -
** Utilizzare con comandi interattivi**: Configure
interactive.diffFilter = delta --color-only_ per ottenere l'evidenziazione di delta ingit add -pe altri comandi Git interattivi. -
Si'. Creare Alias Git che includono opzioni specifiche delta per compiti comuni, come
git config --global alias.review 'diff --color-moved'per flussi di lavoro di revisione standardizzati.
Risoluzione dei problemi¶
Traduzione: Codice non evidenziato | Attiva in Git: git config --global diff.colorMoved default. Quindi impostare lo stile delta: git config --global delta.color-moved-style syntax |