GitUI ofrece la comodidad de una GUI en la terminal
- Operación rápida e intuitiva usando solo el teclado
- Ayuda contextual sin necesidad de memorizar atajos
- Revisión de cambios, commits y amend de commits (incluyendo hooks: pre-commit, commit-msg, post-commit, prepare-commit-msg)
- Staging, unstaging, revert y reset de archivos, hunks y líneas
- Stash (guardar, aplicar, eliminar, inspeccionar)
- Push/fetch desde remotos
- Lista de ramas (crear, renombrar, eliminar, checkout, remotas)
- Navegación/búsqueda del log de commits, ver diff de cambios committeados
- UI de terminal responsiva
- API asíncrona de git para una operación fluida
- Soporte para submódulos
Motivación
- Aunque la mayoría del trabajo con git se hace en la terminal, con frecuencia se usan GUIs de git para algunos casos como índice, commits, diff, stash, blame y log.
- En repositorios grandes, las GUIs de git populares a menudo dejan de responder o se vuelven inutilizables.
- GitUI ofrece la experiencia de usuario y la comodidad de una GUI de git dentro de la terminal, manteniéndose portátil, rápido, gratuito y de código abierto.
Benchmarks
- En una presentación del meetup de RustBerlin se compararon
lazygit, tig y gitui, parseando por completo el repositorio de git de Linux (con más de 900 mil commits):
gitui: 24 segundos ✅, 0.17GB de memoria ✅, binario de 1.4MB, sin congelamientos ✅, sin fallos ✅
lazygit: 57 segundos, 2.6GB de memoria, binario de 16MB, con congelamientos, fallos ocasionales
tig: 4 minutos 20 segundos, 1.3GB de memoria, binario de 0.6MB ✅, congelamientos ocasionales, sin fallos ✅
Hoja de ruta hacia la 1.0
- Objetivos de alto nivel antes de declarar
1.0:
- Visualización de la estructura de ramas en la pestaña de log (#81)
- Rebase interactivo (#32)
Limitaciones conocidas
- Sin soporte para repositorios dispersos (sparse repo) (#1226)
- Sin soporte para firma GPG (#97)
- Sin soporte para git-lfs (#1089)
- En https, un credential.helper requerido debe configurarse explícitamente (#800)
- Actualmente esta herramienta no reemplaza por completo al git shell, pero ambas funcionan bien en conjunto.
- La prioridad de
gitui está en funciones incómodas de realizar en el git shell, como stash o staging de líneas y hunks.
- Eventualmente
gitui podría convertirse en una solución integral, pero para eso necesita ayuda; por ahora es un proyecto de tiempo libre.
- ¡Todo apoyo y patrocinio es bienvenido! ❤️
Instalación
- GitUI está en beta y puede tener bugs y funciones faltantes. Aun así, es bastante estable para uso personal y se usa activamente durante su desarrollo.
- Se puede instalar a través de varios gestores de paquetes.
Build
- Versión mínima soportada de
rust/cargo: 1.65
- Requisitos para compilar la dependencia openssl (ver https://docs.rs/openssl/latest/openssl/)
- Se necesita Python para ejecutar la suite completa de pruebas (debe poder invocarse como
python)
- La forma más sencilla de compilar e instalar
gitui es con cargo install gitui.
Preguntas frecuentes (FAQs)
- Consulta la página de FAQs
Diagnóstico
- Si se ejecuta
gitui -l con el logging activado, se registrarán logs.
Temas de color
gitui funciona automáticamente tanto en terminales con tema claro como oscuro.
- Todo puede personalizarse según tus preferencias.
Asignación de teclas
- La asignación de teclas puede personalizarse.
Patrocinio
Inspiración
- Inspirado en
lazygit, tig, GitUp y otros.
- Sería bueno idear una forma de usar vistas de mapa en herramientas de terminal.
Opinión de GN⁺
- GitUI ofrece a quienes prefieren la terminal la comodidad de una GUI, además de gran velocidad y bajo consumo de memoria, algo especialmente importante al trabajar con repositorios grandes.
- Como proyecto de código abierto, sigue evolucionando gracias al apoyo y las contribuciones de la comunidad de desarrolladores, incorporando el feedback de los usuarios para mejorar sus funciones.
- GitUI parece una herramienta que ayuda a los desarrolladores a trabajar con git de forma eficiente incluso en entornos de terminal, y será especialmente útil para quienes están acostumbrados a operar con el teclado.
1 comentarios
Comentarios en Hacker News