Otros clientes Git (último episodio)

Se cierra aquí la temporada 2 de Git hablando de diferentes plugins que sirven para hacer que se pueda usar Git desde otro programa, o bien programas independientes que han sido creados expresamente para poder trabajar con Git.

A lo largo de nuestro recorrido con Git, hemos explorado principalmente su uso desde la línea de comandos, que es sin duda la forma más directa y potente de interactuar con este sistema de control de versiones. Sin embargo, en el día a día, especialmente cuando estamos inmersos en la programación, no siempre es necesario o práctico recurrir a la terminal para cada operación. Por eso, es interesante conocer las diversas herramientas gráficas y complementos que nos facilitan el trabajo con Git, integrándose en nuestros entornos habituales y mejorando nuestra productividad.

Si utilizamos Visual Studio Code, contamos con un soporte integrado para Git que nos permite hacer commits y otras operaciones básicas con solo un clic. Pero podemos ir más allá con extensiones como GitLens, que añade funcionalidades muy útiles, como mostrar el Blame directamente en línea, es decir, quién fue la última persona que modificó una línea de código mientras la estamos viendo. Además, GitLens nos permite inspeccionar quién tocó una función específica y cuándo, y nos ofrece pequeños fragmentos de diferencias (diffs) para entender mejor los cambios realizados. Esta extensión es especialmente valiosa para quienes trabajan mucho con VS Code y quieren tener un control más fino sobre el historial de su código sin salir del editor.

Para los amantes de los editores más tradicionales, como Vim, también existen opciones para integrar Git. Por ejemplo, el plugin Fugitive añade comandos que nos permiten hacer commits, ver diffs y logs directamente desde el editor, evitando tener que salir a la terminal. Aunque resolver conflictos con Vim puede ser un poco más complejo y requiere configuración adicional, es una posibilidad para quienes disfrutan de este entorno. Además, GitGutter es otra extensión para Vim que resulta esencial, ya que nos muestra en la barra lateral símbolos que indican qué líneas han sido añadidas o eliminadas, facilitando la identificación visual de los cambios en el código.

En el caso de Emacs, no estamos olvidados. Magit es la extensión de referencia para trabajar con Git desde este editor. Nos permite realizar muchas operaciones sin salir del entorno, haciendo que el flujo de trabajo sea más fluido y evitando la necesidad de abrir terminales adicionales.

Pero, ¿qué pasa si preferimos aplicaciones gráficas independientes, que podamos abrir con un doble clic y que nos ofrezcan una interfaz visual para manejar nuestros repositorios? Aquí hay varias opciones interesantes. Sourcetree, desarrollado por Atlassian, es una herramienta gratuita para macOS y Windows que ofrece una experiencia visual muy cuidada para trabajar con Git, especialmente si usamos Bitbucket como plataforma remota. Su interfaz es pulida y amigable, lo que la hace una buena opción para quienes buscan simplicidad y potencia.

GitKraken es otra aplicación multiplataforma (disponible para macOS, Windows y Linux) que nos permite realizar todas las operaciones habituales de Git mediante botones y menús intuitivos. Aunque tiene una versión de pago, su versión básica gratuita es bastante completa y nos ofrece una visualización clara del historial y las ramas, facilitando la gestión de nuestro código.

Para quienes valoran la calidad y están dispuestos a invertir, Sublime Merge, creado por los autores de Sublime Text, es una herramienta visual para Git que destaca por su diseño y funcionalidad. Facilita la creación de commits, la inspección del repositorio y otras tareas comunes, integrándose bien en el flujo de trabajo.

GitHub Desktop es otra alternativa gratuita para macOS y Windows, especialmente útil si trabajamos con repositorios alojados en GitHub. Nos permite hacer commits, ver el historial y gestionar pull requests directamente desde la aplicación. Además, su integración con GitHub facilita la colaboración en equipo y la revisión de código. Una característica destacable es su soporte para rebase interactivo mediante drag and drop, lo que simplifica la reorganización de commits sin necesidad de usar la terminal.

Por último, para quienes prefieren seguir en la línea de comandos pero quieren una interfaz más visual, TIG es una herramienta que merece la pena conocer. Es una interfaz de línea de comandos para Git que nos permite navegar por el historial de commits, ver diffs y explorar el estado del repositorio de forma ordenada y clara. Aunque no permite hacer commits directamente, es muy útil para inspeccionar el repositorio y entender su evolución sin salir de la terminal.

Con todas estas opciones, podemos adaptar nuestro uso de Git a nuestras preferencias y necesidades, combinando la potencia de la línea de comandos con la comodidad de las interfaces gráficas y las integraciones en nuestros editores favoritos. Así, el trabajo con Git se vuelve más accesible y eficiente, permitiéndonos centrarnos en lo que realmente importa: escribir buen código.

# Ejemplo de uso básico de TIG para visualizar commits
tig
" Ejemplo de comandos básicos con Fugitive en Vim
:Git status
:Git commit
:Git diff
;; Instalación básica de Magit en Emacs
(use-package magit
  :ensure t
  :bind ("C-x g" . magit-status))
// Ejemplo de configuración de GitLens en Visual Studio Code (settings.json)
{
  "gitlens.currentLine.enabled": true,
  "gitlens.hovers.enabled": true,
  "gitlens.codeLens.enabled": true
}
Lista de reproducción
  1. 1
    ¿Qué es Git?
    4 minutos
  2. 2
    Cómo instalar Git
    9 minutos
  3. 3
    Creando tu primer commit
    9 minutos
  4. 4
    Qué es el staging area
    10 minutos
  5. 5
    Cómo deshacer modificaciones de archivos
    7 minutos
  6. 6
    Cómo deshacer un commit con reset
    7 minutos
  7. 7
    Cómo revertir un commit con revert
    7 minutos
  8. 8
    Introducción a las ramas
    6 minutos
  9. 9
    Cómo crear y modificar ramas
    6 minutos
  10. 10
    Commits bajo el workflow Feature Branch
    6 minutos
  11. 11
    Cómo fusionar ramas con merge
    6 minutos
  12. 12
    Fusiones conflictivas
    9 minutos
  13. 13
    Cómo construir alias
    7 minutos
  14. 14
    Más sobre conflictos
    9 minutos
  15. 15
    Etiquetas
    7 minutos
  16. 16
    Tags anotados
    9 minutos
  17. 17
    git stash: esconder cambios
    6 minutos
  18. 18
    Introducción a remotos
    5 minutos
  19. 19
    Pusheando a un remoto
    6 minutos
  20. 20
    Clonando y haciendo pull
    6 minutos
  21. 21
    Fetch y pull rebases
    8 minutos
  22. 22
    Rebase
    7 minutos
  23. 23
    Rebase interactivo
    6 minutos
  24. 24
    Master, main y otros nombres de rama
    9 minutos
  25. 25
    git switch
    9 minutos
  26. 26
    git-restore
    10 minutos
  27. 27
    git-grep
    11 minutos
  28. 28
    Gitignore
    11 minutos
  29. 29
    El flag --patch
    9 minutos
  30. 30
    git-apply y parches en bruto (advanced)
    9 minutos
  31. 31
    Merge octopus (advanced)
    9 minutos
  32. 32
    Conventional commits
    12 minutos
  33. 33
    Merge and squash (GitLab / GitHub...)
    6 minutos
  34. 34
    git merge --squash
    7 minutos
  35. 35
    git-bisect
    8 minutos
  36. 36
    git-blame
    6 minutos
  37. 37
    git-reflog
    10 minutos
  38. 38
    Git para la Bash
    11 minutos
  39. 39
    Submódulos (parte 1)
    7 minutos
  40. 40
    Submódulos (parte 2)
    10 minutos
  41. 41
    Otros clientes Git (último episodio)
    9 minutos