Guía técnica de LazyGit: Domina la interfaz de terminal para Git

Introducción a LazyGit

LazyGit es una interfaz de terminal (TUI) escrita en Go que simplifica la gestión de repositorios Git. Permite realizar operaciones complejas, como rebasamientos interactivos o gestión de conflictos, de forma visual sin abandonar la línea de comandos.

Instalación en diversos entornos

Para integrar esta herramienta en tu flujo de trabajo, utiliza el gestor de paquetes correspondiente a tu sistema operativo:

  • macOS (Homebrew): brew install lazygit
  • Linux (Debian/Ubuntu): ``` sudo add-apt-repository ppa:lazygit-team/release sudo apt update sudo apt install lazygit
  • Windows (Scoop): scoop install lazygit
  • Entorno Go: go install github.com/jesseduffield/lazygit@latest

Para comprobar que la instalación fue exitosa, ejecuta lazygit --version en tu terminal.

Exploración de la Interfaz

Al ejecutar el comando lazygit dentro de un repositorio, verás una pantalla dividida en paneles principales. Puedes navegar entre ellos usando las teclas h/l o los números del 1 al 5.

Panel Descripción
Files (Archivos) Muestra el estado actual del árbol de trabajo y el índice (staging area).
Branches (Ramas) Gestión de ramas locales y remotas.
Commits Historial de confirmaciones del branch actual.
Stash Modificaciones guardadas temporalmente.

Operaciones con Archivos y Commits

La gestión de cambios es ágil mediante atajos de teclado directos:

  • Espacio: Cambia el estado de un archivo entre preparado (staged) y no preparado.
  • a: Prepara o descarta todos los cambios del panel de archivos.
  • c: Abre un prompt para escribir el mensaje de commit.
  • C: Permite realizar un commit utilizando el editor de texto configurado en el sistema (ej. Vim o Nano).
  • d: Elimina los cambios locales de un archivo específico.

Gestión de líneas específicas (Partial Staging)

Si necesitas añadir solo una parte de un archivo, presiona Enter sobre él. En la vista de diferencias (diff):

  • Usa Espacio para seleccionar líneas o bloques (hunks) individuales.
  • Presiona v para activar la selección por bloques y procesar múltiples líneas a la vez.

Administración de Ramas y Flujo Remoto

LazyGit facilita la manipulación de ramas sin comandos extensos:

  • n: Crea una rama nueva a partir del punto actual.
  • Espacio: Realiza un checkout de la rama seleccionada.
  • M: Fusiona (merge) la rama seleccionada dentro de la rama actual.
  • p: Ejecuta un git pull.
  • P: Ejecuta un git push (configura el upstream si es necesario).

Rebase Interactivo y Cherry-pick

Una de las funciones más potentes es la edición del historial desde el panel de Commits:

  1. Ubícate sobre un commit y presiona i para iniciar el rebase interactivo.
  2. Utiliza las siguientes teclas para modificar los commits:
    • r: Renombrar el mensaje (reword).
    • e: Editar el contenido del commit.
    • s: Combinar con el commit anterior (squash).
    • d: Eliminar el commmit (drop).
  3. Para mover commits de una rama a otra, usa c para copiar (cherry-pick) y v para pegar en el destino deseado.

Resolución de Conflictos

Cuando ocurre una colisión durante un merge o rebase, LazyGit activa el panel de conflictos automáticamente. Al entrar en el archivo conflictivo con Enter, puedes:

  • Seleccionar la versión local o remota con las flechas.
  • Presionar Espacio para aceptar la versión resaltada.
  • Usar b para conservar ambas versiones de código.

Personalización del Entorno

El comportamiento de LazyGit se define en un archivo YAML. En sistemas Unix, este se encuentra usualmente en ~/.config/lazygit/config.yml.

# Ejemplo de personalización de comportamiento
git:
  paging:
    colorArg: always
    pager: delta --dark --paging=never
  pull:
    mode: 'rebase'
gui:
  showIcons: true
  theme:
    activeBorderColor:
      - '#00dfd7'
      - bold

Esta configuración fuerza el uso de rebase en cada pull y mejora la visualización de los diffs utilizando herramientas externas como delta.

Etiquetas: Git lazygit terminal CLI workflow

Publicado el 6-3 02:36