8 Instalar un cliente Git
Esto es opcional pero muy recomendable.
Aprender a utilizar el control de versiones puede resultar complicado al principio. El uso de una GUI, a diferencia de la línea de comandos, me resultó extremadamente útil cuando comencé. A este tipo de aplicación auxiliar la llamo cliente Git. Es realmente un cliente Git(Hub) porque también te ayuda a interactuar con GitHub u otros controles remotos.
No se requiere un cliente Git para los talleres en vivo y no se enseñará explícitamente, aunque es posible que nos vea usando uno de estos clientes.
8.1 ¿Qué es un cliente Git? ¿Por qué querrías uno?
“Git” es en realidad solo una colección de comandos individuales que se ejecutan en el shell (Apéndice A). Esta interfaz no es atractiva para todos. Es posible que algunos prefieran realizar operaciones de Git a través de un cliente con una interfaz gráfica.
Git y su cliente Git no son lo mismo, al igual que R y RStudio no son lo mismo. Un cliente Git y un entorno de desarrollo integrado, como RStudio, no son necesarios para usar Git o R, respectivamente. Pero hacen que la experiencia sea más placentera porque reducen la cantidad de “tonterías en la línea de comandos”1 y brindan una representación visual más rica del estado actual.
RStudio ofrece un cliente Git muy básico a través de su panel Git. Lo uso a menudo para operaciones simples, pero probablemente también quieras otro más potente.
Advertencia justa: para algunas tareas, debes usar la línea de comando. Pero cuanto más poderoso sea su cliente Git, menos frecuente será que esto suceda. La descripción visual proporcionada por su cliente Git también puede ser invaluable para comprender el estado actual de las cosas, incluso al preparar llamadas a la línea de comandos de Git.
Fantásticas noticias: debido a que todos los clientes simplemente están formando y ejecutando comandos de Git en su nombre, no es necesario que elija uno. Literalmente puedes hacer una operación desde la línea de comando, hacer otra desde RStudio y otra desde GitKraken, una tras otra, y simplemente funciona. Muy raramente, ambos clientes escanearán el repositorio al mismo tiempo y recibirás un mensaje de error sobre .git/index.lock
. Intente la operación nuevamente al menos una vez antes de seguir solucionando el problema.
8.2 Una imagen vale mas que mil palabras
Aquí hay una captura de pantalla de GitKraken (ver más abajo) abierta en el repositorio del paquete R pkgdown. Obtiene una buena descripción gráfica del historial de commits recientes, ramas y diferencias, así como una GUI que facilita las operaciones de Git más comunes.
En contraste, aquí hay una sesión de shell en la que utilicé la línea de comando Git para acceder a parte de la misma información.
jenny@jennys-MacBook-Pro pkgdown % git log --oneline -n 10
cd888bed (HEAD -> master, upstream/master, upstream/HEAD, r-lib/master, r-lib/HEAD) Remove accidentally committed snapshot
ca01d386 Add a skip link (#1833)
1f07a145 Include section class in generated subsection divs
26e1dcf2 Restore code colouring
77503979 Working on docs (#1828)
3c805e1a Make anchor tweaking stricter
a6ae3ca4 use_tidy_description()
d43260fb Tweak authors order
41c855df Tweak details styling
7d3c484c Anchor & news tweaks (#1830)
¿Cual prefieres?
8.3 Nadie está entregando insignias de mérito de Git Nerd
Trabaja con Git de la forma que te haga más eficaz. Siéntase libre de revisar su enfoque con el tiempo o de utilizar diferentes enfoques para diferentes tareas o en diferentes entornos. Nadie puede saber si usa la línea de comando o una GUI cuando miran su historial de Git o su repositorio de GitHub.
A veces me encuentro con personas que sienten que es “mejor” usar la línea de comandos de Git, pero por razones muy mal definidas. Estas personas pueden sentir que deberían trabajar en el shell, incluso si eso les lleva a evitar Git, cometer errores frecuentes o limitarse a un pequeño conjunto de ~3 comandos de Git. Esto es contraproducente.
Tuve dos comienzos en falso con Git, en los que no logré dominar lo suficiente ni lo suficientemente rápido como para incorporar realmente el control de versiones en mi trabajo diario. Encontré un cliente visual de Git invaluable. Me hizo querer usar Git varias veces al día, durante un período de tiempo prolongado. Esto me ayudó a construir el modelo mental necesario para operaciones de Git más avanzadas, como cambiar la base, seleccionar y restablecer.
Si tu vida con Git ocurre en tu propia computadora, no hay razón para negarte una GUI si eso es lo que te gusta. Si prefiere trabajar en el shell o si inicia sesión con frecuencia en un servidor remoto, entonces tiene sentido priorizar el desarrollo de habilidades de Git en la línea de comandos. Haz lo que funcione para ti, pero no hagas nada por el bien de la pureza o el heroísmo.
8.4 Clientes Git recomendados
GitKraken es un potente y gratuito cliente Git(Hub) que es mi favorito actualmente. Es especialmente interesante porque funciona en Windows, macOS y Linux. Esta es una gran noticia, especialmente para los sufridos usuarios de Linux que antes tenían muy pocas opciones. Utilicé la versión gratuita durante años, que funciona muy bien, pero ahora pago felizmente por la versión pro.
SourceTree es otro cliente gratuito que solía recomendar encarecidamente. Fue mi primer cliente Git querido, pero finalmente tuve que abandonarlo debido a errores/deficiencias de larga data que parecían que nunca se solucionarían (error de macOS con respecto a identificadores de archivos filtrados, sin posibilidad de controlar el tamaño de fuente). GitKraken se siente mucho más desarrollado activamente y para mí ha suplantado por completo a SourceTree.
GitHub ofrece un cliente Git(Hub) gratuito, GitHub Desktop, para Windows y macOS. Aunque anteriormente desalentamos su uso, desde entonces el cliente de GitHub ha recibido una renovación completa que elimina varias de nuestras preocupaciones, por lo que somos cautelosamente optimistas. GitHub Desktop está dirigido a principiantes que desean las funciones más útiles de Git al frente y al centro. La otra cara es que es posible que no admita algunos de los flujos de trabajo más avanzados expuestos por los clientes anteriores y, en consecuencia, es posible que no desarrolle su modelo mental de Git tan a fondo.
Explorar aún más clientes Git(Hub).
Esta evocadora frase apareció originalmente en una publicación de blog de Philip Guo, que posteriormente fue eliminada de Internet.↩︎