Hoja de Referencia de Delta¶
Instalación¶
| Platform | Comando |
|---|---|
| Ubuntu/Debian | wget 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 Linux | sudo pacman -S git-delta |
| Fedora/RHEL | sudo dnf install git-delta |
| Alpine Linux | apk 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 Installation | delta --version |
| ## Comandos Básicos |
| Comando | Descripción |
|---|---|
git config --global core.pager delta |
Establecer delta como paginador predeterminado de Git |
git diff |
Ver cambios sin preparar con delta |
git diff --cached |
Ver cambios preparados con delta |
git diff path/to/file.py |
Ver cambios en archivo específico |
git diff main |
Comparar rama actual con main |
git diff branch1..branch2 |
Comparar dos ramas |
git show HEAD |
Mostrar último commit con diff |
git show abc123 |
Mostrar commit específico con diff |
git log -p |
Ver historial de commits con diffs |
git diff commit1 commit2 |
Comparar dos commits específicos |
diff file1.txt file2.txt \ | delta |
Canalizar la salida estándar diff a delta |
delta file1.txt file2.txt |
Comparar archivos directamente con delta |
delta --show-syntax-themes |
Mostrar todos los temas de sintaxis disponibles |
delta --list-languages |
Enumerar todos los lenguajes de programación compatibles |
delta --show-config |
Mostrar configuración delta actual |
git blame file.py |
Ver git blame con formato delta |
git grep "function" \ | delta |
Salida de grep mejorada con delta |
git diff --stat |
Mostrar estadísticas de diferencias con delta |
git diff -w \ | delta |
Ver diff ignorando cambios de espacios en blanco |
delta changes.diff |
Ver un archivo diff guardado con delta |
| ## Uso Avanzado |
| Comando | Descripción |
|---|---|
git diff \ | delta --side-by-side |
Habilitar vista de diferencias lado a lado |
git diff \ | delta --side-by-side --width 200 |
Lado a lado con ancho personalizado |
git diff \ | delta --line-numbers |
Habilitar números de línea en la salida diff |
git diff \ | delta --syntax-theme Monokai |
Usar tema de sintaxis específico temporalmente |
git diff \ | delta --language python |
Forzar resaltado de sintaxis de lenguaje específico |
git config --global delta.side-by-side true |
Habilitar el modo de pantalla dividida globalmente |
git config --global delta.line-numbers true |
Habilitar números de línea globalmente |
git config --global delta.navigate true |
Habilitar modo de navegación para saltar entre archivos |
git config --global delta.hyperlinks true |
Habilitar hipervínculos de ruta de archivo clicables |
git config --global diff.colorMoved default |
Resaltar bloques de código movidos |
git config --global pager.blame delta |
Usa delta para la salida de git blame |
git config --global pager.grep delta |
Usa delta para la salida de git grep |
git config --global interactive.diffFilter "delta --color-only" |
Usa delta en comandos interactivos de Git |
git blame -L 10,20 file.py |
Ver blame para rango de líneas específico con delta |
git diff --word-diff |
Mostrar diferencias a nivel de palabra con delta |
git config --global delta.pager "less -RFX" |
Personalizar comportamiento del pager |
git config --global delta.features "line-numbers decorations" |
Habilitar múltiples características a la vez |
git diff --ignore-space-at-eol \ | delta |
Ignorar espacios en blanco al final de la línea |
git config --global delta.max-line-length 512 |
Establecer longitud máxima de línea para mostrar |
git config --global delta.tabs 4 |
Establecer ancho de pestaña para mostrar |
| ## Configuración |
Delta se configura a través del sistema de configuración de Git. La configuración puede establecerse globalmente (~/.gitconfig) o por repositorio (.git/config).
Configuración Básica¶
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
line-numbers = true
side-by-side = true
Ejemplo de Configuración 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
Conjuntos de Características Personalizadas¶
Crear perfiles de configuración reutilizables:
[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
Temas de Sintaxis Populares¶
Monokai ExtendedNordDraculagruvbox-darkgruvbox-lightSolarized (dark)Solarized (light)GitHubOneHalfDarkOneHalfLight
Casos de Uso Comunes¶
Caso de Uso 1: Flujo de Trabajo de Revisión de Código Diario¶
# 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
Caso de Uso 2: Comparando Ramas para Fusionar¶
# 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
Caso de Uso 3: Investigando el Historial de Código¶
# 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
Caso de Uso 4: Resolución de Conflictos de Fusión¶
# 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
Caso de Uso 5: Creando Informes de Diferencias Legibles¶
# 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
Mejores Prácticas¶
-
Configurar delta globalmente: Configurar
git config --global core.pager deltauna vez para usar delta en todos los repositorios, asegurando una experiencia consistente de visualización de diferencias. -
Habilitar modo de navegación: Usar
git config --global delta.navigate truepara saltar rápidamente entre archivos en diffs grandes usando las teclasn(siguiente) yN(anterior). -
Elegir temas apropiados: Seleccionar temas de sintaxis que coincidan con el fondo de su terminal (oscuro/claro) y proporcionen buen contraste. Probar con
Would you like me to fill in the remaining placeholders with specific translations or leave them as-is?delta --show-syntax-themespara previsualizar todas las opciones.
-
Usar lado a lado para revisiones: Habilitar
side-by-side = truepara revisiones de código y comparaciones de merge, pero desactivarlo para comprobaciones rápidas en terminales estrechas para evitar problemas de ajuste de línea. -
Configurar números de línea estratégicamente: Habilitar números de línea para depuración y revisiones de código (
line-numbers = true), pero considerar desactivarlos para diffs simples para reducir el desorden visual. -
Aprovechar la detección de código movido: Establecer
diff.colorMoved = defaultpara resaltar código que ha sido movido en lugar de cambiado, haciendo las revisiones de refactorización mucho más claras. -
Crear conjuntos de características personalizados: Definir múltiples configuraciones delta para diferentes flujos de trabajo (por ejemplo, "review", "quick-check", "presentation") y cambiar entre ellos según sea necesario usando la opción
features. -
Optimizar para su flujo de trabajo: Ajustar
width,tabs, ywrap-max-linesconfiguraciones basadas en el tamaño típico de su terminal y estándares de codificación para prevenir saltos de línea incómodos. -
Usar con comandos interactivos: Configurar
interactive.diffFilter = delta --color-onlypara obtener el resaltado de delta engit add -py otros comandos interactivos de Git. -
Combinar con alias de Git: Crear alias de Git que incluyan opciones específicas de delta para tareas comunes, como
git config --global alias.review 'diff --color-moved'para flujos de trabajo de revisión estandarizados.
Resolución de problemas¶
| Problema | Solución |
|---|---|
| Delta not being used for diffs | Verify configuration with git config --global core.pager - should return delta. If not, run git config --global core.pager delta |
| Colors not displaying correctly | Check terminal supports 24-bit color. Set COLORTERM=truecolor environment variable. Try different syntax themes with delta --show-syntax-themes |
| Side-by-side view is garbled | Terminal 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 showing | Enable explicitly: git config --global delta.line-numbers true. Check that feature isn't disabled in a custom feature set |
| Syntax highlighting not working | Verify file extension is recognized with delta --list-languages. Force language with --language option or check syntax-theme setting |
| Delta not working in git add -p | Set interactive diff filter: git config --global interactive.diffFilter "delta --color-only". The --color-only flag is essential for interactive mode |
| Pager quits immediately | Adjust 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 diffs | Disable side-by-side mode, reduce max-line-length, or use --syntax-theme none to disable syntax highlighting for faster rendering |
| Hyperlinks not clickable | Ensure terminal supports hyperlinks (iTerm2, kitty, Alacritty). Enable with git config --global delta.hyperlinks true |
| Configuration not taking effect | Check for conflicting configs: git config --list | grep delta. Repository-level configs override global. Use --show-config to see active settings |
| Unicode characters displaying incorrectly | Ensure terminal uses UTF-8 encoding. Set LC_ALL=en_US.UTF-8 or similar locale. Check font supports Unicode characters used in decorations |