Version Control with Git
Continuando con las actividades de Young Professional Spain durante el estado de alarma, y tras un par de eventos más orientados a un formato charla, en la que introducir un tema específico, o debatir sobre diversos aspectos de la realidad del mundo de la ingeniería; se enfocó esta tercera sesión en la realización de algo más práctico, siendo un taller de Git la opción finalmente elegida.
Antes de continuar, si en lo que estáis interesados es en ver el taller, podéis hacerlo en el este enlace.
Git, temido por unos, casi odiado por otros, y que a pesar de todo esto se ha convertido en un estándar de facto para el control de versiones de software en la industria; además de ser muy usado para compartir código open source, con GitHub como ejemplo más significativo.
Arturo Medina, actual chair de YP Spain, acudió en el rescate de todos aquéllos que, por no atreverse a utilizar Git, o por estar utilizándolo mal, pensaban que Git era confuso, o incluso peligroso, y preferían mantenerse alejado de él. Dispuesto a que todos saliéramos de este taller con la idea de que, tras dedicar un tiempo prudencial a conocer sus fundamentos, Git podría convertirse en uno de nuestros mayores aliados a la hora de seguir desarrollándonos como profesionales.
Y todo esto, encima, en inglés. ¿Querías soft skills? ¡Pues toma dos tazas!
Pero antes de todo esto, la presentación del evento, así como del grupo de Young Professionals Spain corrió a cargo de Manuel Ballesteros, antiguo chair, eterna presencia en actividades el IEEE, y actual miembro de YP R8. En unos pocos minutos dio cuenta de la razón de la existencia de Young Professionals, las motivaciones que llevaban a la sección española a llevar a cabos actividades como este taller, y de algún aspecto llamativo de esa máquina de commitear también conocida como Arturo.
Y sin más, llegó el turno del ponente principal, que se encargó de recordarnos que, como en las actividades anteriores de este YP Quarantine Edition, se podía “interrumpir” con preguntas en tiempo real, de cara a darle dinamismo a la experiencia, y que el flujo de información no fuese siempre en el mismo sentido.
Con el feedback asegurado, y todo listo para empezar, sólo faltaba ya que Arturo empezara a convencernos de que hablar de Git es hablar de una herramienta muy potente para el desarrollo profesional de un ingeniero, y no sólo es útil para el ámbito profesional, sino también para controlar nuestra propia documentación.
Y para ello empezó con una breve introducción teórica, centrada en el porqué el control de versiones es importante. Para ello, usó como ejemplo su proyecto final de carrera, una aplicación, y cómo a la hora de trabajar con sólo una copia en su ordenador, perder esos datos hubiera podido tener consecuencias terribles, llegando incluso a encontrarse de pronto con la ausencia todo el trabajo realizado.
El control de versiones previene este tipo de situaciones.
EL objetivo de este taller no era become an expert in Git, cosa que queda fuera del alcance de una sesión de una sola tarde. La principal intención era que la gente aprendiera de su utilidad, no le tuviera miedo a Git, y contase con información sobre cómo empezar usarlo cada vez de manera más profesional.
Más enfocados en la parte técnica, se habló de las posibilidades de Git en el control de versiones para monitorizar la evolución de ficheros, y poder así acudir a versiones anteriores.
En concreto, evitar el típico caso de un fichero llamado final_version2_realfinal_definitiva.zip
Y especialmente útil para proyectos grandes que evolucionan mucho a lo largo del tiempo, sobre todo si tenemos que volver a algún punto del pasado.
También se explicó utilidad de Git en taras como la evolución del código, control de errores (sobre todo para encontrarlos rápido), verificar cambios de manera individual, distribuir código para facilitar la colaboración, etc.
Pasando de puntillas por sus orígenes relacionados con Linus, se enumeraron sus principales ventajas, como la de ser totalmente distribuido, tener absoluto control sobre el repositorio, ser rápido y ligero, muy poderoso y fácil de aprender.
Y con estos apuntes, se pasó a la parte eminentemente práctica del taller, recomendando antes una serie de recursos muy útiles para seguir con la formación después de la finalización del taller, y que se recogen a continuación:
- Pro Git, libro que se podría considerar la Biblia del Git.
https://git-scm.com/book/en/v2
- Learn Git branching online, para practicar con la gestión de ramas en Git.
https://learngitbranching.js.org/?NODEMO=&locale=es_AR
- Git commands cheatsheet, con una serie de comandos útiles para comenzar a trabajar con Git.
https://github.github.com/training-kit/downloads/github-git-cheat-sheet/
En esta parte, se llevaron a cabo los primeros pasos de configuración con Git, apoyándose en la información antes proporcionada. Entre otras cosas, se realizaron las siguientes:
- Registrarse en Git y copiar un repositorio.
- Uso de git log para comprobar el historial de cambios en el repositorio.
- Uso de git show para mostrar detalles de commits específicos. Muy útil también para comprobar qué se cambió en un commit, y comprobar cambios entre versiones (especialmente para encontrar fallos).
- Uso de las ramas en Git.
También se trataron aspectos significativos como los diferentes estados en el ciclo de vida de los ficheros de un repositorio, o la importancia a la hora de realizar un commit de explicar por qué se está haciendo, así como qué es lo que se está haciendo, para facilitar a otros desarrolladores o a ti mismo en un futuro el comprender qué se hizo y por qué en aquel momento.
Sin olvidar las recomendaciones dadas para empezar con Git, que contemplaban GitHub, GitLab y BitBucket como los más usados, ya fueran para proyectos open-source como por empresas privadas.
Por último, basándose en el control de versiones en una empresa real, se comentaron buenas prácticas recomendables a la hora de usar Git en el ámbito profesional, y con la ayuda de ejemplos se hicieron recomendaciones de cómo usar esta herramienta en nuestro futuro laboral
Se trató, en definitiva, de una interesante iniciativa de cara a promover el uso de esta herramienta, que está adquiriendo el estatus de imprescindible en gran cantidad de empresas, entre aquella gente que por desconocimiento, desconfianza, o desazón al tener que enfrentarse a ella, no contase con Git entre las cosas de las que presumir en un currículum.