Ir al contenido

Hoja de Referencia de Delta

Hoja de Referencia de Delta

Instalación

PlatformComando
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

Comandos Básicos

ComandoDescripción
git config --global core.pager deltaEstablecer delta como paginador predeterminado de Git
git diffVer cambios sin preparar con delta
git diff --cachedVer cambios preparados con delta
git diff path/to/file.pyVer cambios en archivo específico
git diff mainComparar rama actual con main
git diff branch1..branch2Comparar dos ramas
git show HEADMostrar último commit con diff
git show abc123Mostrar commit específico con diff
git log -pVer historial de commits con diffs
git diff commit1 commit2Comparar dos commits específicos
`diff file1.txt file2.txt \delta`
delta file1.txt file2.txtComparar archivos directamente con delta
delta --show-syntax-themesMostrar todos los temas de sintaxis disponibles
delta --list-languagesEnumerar todos los lenguajes de programación compatibles
delta --show-configMostrar configuración delta actual
git blame file.pyVer git blame con formato delta
`git grep “function” \delta`
git diff --statMostrar estadísticas de diferencias con delta
`git diff -w \delta`
delta changes.diffVer un archivo diff guardado con delta

Uso Avanzado

ComandoDescripción
`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 trueHabilitar el modo de pantalla dividida globalmente
git config --global delta.line-numbers trueHabilitar números de línea globalmente
git config --global delta.navigate trueHabilitar modo de navegación para saltar entre archivos
git config --global delta.hyperlinks trueHabilitar hipervínculos de ruta de archivo clicables
git config --global diff.colorMoved defaultResaltar bloques de código movidos
git config --global pager.blame deltaUsa delta para la salida de git blame
git config --global pager.grep deltaUsa 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.pyVer blame para rango de líneas específico con delta
git diff --word-diffMostrar 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`
git config --global delta.max-line-length 512Establecer longitud máxima de línea para mostrar
git config --global delta.tabs 4Establecer 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 Extended
  • Nord
  • Dracula
  • gruvbox-dark
  • gruvbox-light
  • Solarized (dark)
  • Solarized (light)
  • GitHub
  • OneHalfDark
  • OneHalfLight

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 teclas n(siguiente) y N(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: Habilitarside-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: Establecerdiff.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ónfeatures.

  • Optimizar para su flujo de trabajo: Ajustarwidth,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: Configurarinteractive.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, comogit config --global alias.review 'diff --color-moved'para flujos de trabajo de revisión estandarizados.

Resolución de problemas

ProblemaSolución
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