Artículo 9 Introducción a GIT y control de versiones

Rolando José Minera Alejandro

Estudiante de Ingeniería en Ciencias y Sistemas - USAC
Palabras Clave: Git, control, versiones, inician, versionamiento, estudiantes, programación.

Git es una herramienta para el control de versiones, diseñado por Linus Torvalds, quien es el reconocido ingeniero de software creador del kernel del sistema operativo Linux. Pero... ¿Qué es control de versiones? Bueno, el control de versiones es tener un gran botón "Deshacer" en tu proyecto. Si tu proyecto fuese un juego, el control de versiones sería el punto de guardado, el “Checkpoint”. Con esto quiero decir que facilita guardar tu código fuente y permite de manera muy sencilla moverte entre distintas versiones de tu proyecto. ¿Tu proyecto dejó de funcionar luego de un cambio y no encuentras el por qué? Sería tan sencillo como regresar al checkpoint anterior, aprovechando, que te indique cuál fue tu error. Esto es control de versiones, Git es una de las herramientas más conocidas. Todo esto te servirá mucho como estudiante, sin embargo, por la estructura del pensum de la carrera de Ingeniería en Ciencias y Sistemas (de la Universidad de San Carlos de Guatemala), no lo veras sino hasta semestres ya avanzados; después de haber aprobado los cursos más pesados de la carrera, los cursos que tienen un mayor énfasis en la programación. Por eso propongo la introducción de dichas herramientas y conocimientos a los estudiantes lo más pronto posible en la carrera.

Fuente: git-scm.com

Al principio puede que usar Git te parezca algo difícil, pero una vez te acostumbras se vuelve indispensable para tus proyectos y hasta tu forma de trabajar se vuelve más eficiente, por eso muchas compañías exitosas utilizan el control de versiones para trabajar, como Google o Facebook, pues facilita el trabajo en el equipo. Ya no existe la necesidad de enviarse archivos comprimidos de un correo a otro, todo se encuentra centralizado en un solo lugar de trabajo; donde cualquiera con permisos del equipo puede tener acceso. Como se mencionó previamente, una función de Git que te ayudará es que guarda el código fuente de tu proyecto en un puntos en el tiempo, agregándole una descripción de cada punto con los cambios que se han hecho en el código o progresos que ha tenido el proyecto. Este punto de guardado es conocido como Commit y Git te permitirá moverte de manera libre entre cada uno de estos, ya sea que necesites regresar a un estado anterior del proyecto o que quieras regresar a la versión más actualizada. Podrás visualizar todos los commits hechos en un log o historial, se muestra la descripción o razón del commit y en un orden inversamente cronológico.

Ahora que ya sabes lo que es control de versiones, hablaremos de algunas de las cosas que puedes realizar al utilizar Git. Primero, deberás aprender a transformar tu proyecto en un repositorio, será la carpeta de tu proyecto donde se centralizará la información de tu código fuente. Y para eso deberás aprender a usar los Comandos de Git, que consta de su propio lenguaje para realizar diferentes operaciones. Algunos de los comandos son bastante sencillos, por ejemplo, para listar el historial de commits, crear un repositorio o moverse entre diferentes versiones del proyecto o agregar un archivo nuevo. Otros son más complejos, pero son bastante útiles, como el comando “diff” que es el que usarás para revisar los cambios que se realizaron entre 2 puntos de guardado. Ahora imagínate esta situación, trabajas en un proyecto que funciona perfectamente, luego de agregar unas líneas de código deja de funcionar y no logras encontrar cual es el error; con Git ya no tendrías que revisar todo el código, puedes usar “diff” para revisar cuales son las líneas de código que se agregaron y los cambios que se hicieron sobre lo que ya se tenía hecho. Es más fácil revisar 20 líneas de código, que todas las líneas de código del proyecto. Dicho de otra manera, te ayudará a filtrar las líneas de código que no han cambiado durante tus modificaciones en el proyecto.

Ahora una de las cosas más importantes y la razón por la que escribo este artículo, es para contarles a las personas que inician en la carrera de Ingeniería en Sistemas que pueden respaldar el código de su proyecto. Solo el semestre tuve más de diez instancias en las que un alumno me reportó que tuvo un incidente con su laptop y que no tenía un respaldo de todos sus proyectos de clase. Ya sea que les hayan robado o extraviado su computadora, esto podría evitarse con solo respaldar su proyecto en algún lugar, pero ¿Qué tan seguido uno respalda sus proyectos manualmente y dónde lo puede alojar? Si el estudiante fuera un usuario de Git, respaldar su proyecto hubiera sido tan fácil como ingresar un comando y darle “Enter”, sin embargo, me atrevo a decir que muchos estudiantes no realizan una copia de seguridad de su proyecto, pues nunca nadie planea que algo malo le vaya a pasar. Muchas plataformas web trabajan de la mano de Git, y una de las más reconocidas es GitHub.

Github es una pública orientada a los desarrolladores en la que muchas personas y organizaciones almacenan sus proyectos de trabajo (usualmente de código abierto). Y GitHub no es el único existente, en la web se encuentra muchas más plataformas similares, hay que buscar y encontrar la que más satisfaga sus necesidades. Luego de que hayas creado tu usuario en Github podrás crear los repositorios virtuales que quieras y respaldar los avances que hagas en tu proyecto tan seguido como desees. Lo único que debes hacer, es asociar tu repositorio local con el que creaste en Github y respaldar tu proyecto será tan fácil como escribir "git push", es todo lo que deberás hacer. Git y Github presentan, muchas más herramientas o servicios que nos serán de mucha ayuda (como el uso de ramas en git o el pull-request de Github), pero no hablaremos de eso en este momento, ya que no es el punto de este artículo.

En un ambiente de trabajo profesional, el control de versiones representa el medio con el que los empleados interactúan con el desarrollo y avance del proyecto, usualmente se establecerán acuerdos acerca de la en la que se debe utilizar esta herramienta. Usualmente se definirá un esquema de cómo se deben identificar los archivos que se agregarán y un estándar con el que deben nombrarse. También, se definirá un esquema con la forma en la que se deberá nombrar a las distintas versiones del proyecto, si el seguimiento de las versiones se lleva a cabo con Git o herramientas similares. Además, usualmente se define un flujo de trabajo con el que se deberá llevar el desarrollo del proyecto. Estas y muchas cosas más son las que se realizan con Git en un ambiente profesional, se los menciono para que sepan que Git es más que una forma de respaldar y darle seguimiento a sus trabajos, es un estándar que se utiliza en muchos lugares de trabajo. En la universidad no hay necesidad de usar Git, pero sería bueno si más estudiantes lo usarán; además, seria de ayuda también para los auxiliares, para no esperar que los estudiantes les envíen su código y en lugar de eso le compartieran el acceso al repositorio respectivo de cada uno de sus alumnos.

Para finalizar, este artículo no sería de mucha ayuda si no les proporcionara alguna ayuda a aquellas personas que quieran aprender a utilizar Git y no sepan dónde. Así que, si no saben dónde buscar, les recomiendo el curso de “Learn Git” en la plataforma de Codeacademy, si buscan algo más avanzado, el curso de “How to use Git and Github” en la plataforma de Udacity les ayudará. Sin embargo, no se atengan solo a estos sitios, pues existen muchos más lugares para aprender estas herramientas en la web, así que siéntanse libres de buscar; espero que logren encontrar ese lugar ideal que se acomode a sus necesidades, y que los motive siempre a seguir mejorando.

Conclusiones

  • Muchos estudiantes que inician la carrera no realizan un respaldo de sus proyectos y a algunos les termina afectando de manera negativa en sus cursos.

  • La introducción a Git ayudaría a los alumnos a respaldar su trabajo y podría facilitar la comunicación del progreso del proyecto con el tutor de cátedra.

  • Git también podría ayudar a los alumnos a trabajar de una manera más eficiente y reducir los tiempos durante la corrección de errores.

  • En la universidad no existe la necesidad del uso de control de versiones, pero su introducción prematura a los estudiantes les ayudaría a su desempeño y preparación para su vida laboral.

Referencias

  1. Sitio web de GIT

  2. Plataforma de Github

  3. Curso libre para aprender Git en la plataforma de Codeacademy: https://www.codecademy.com

  4. Curso libre para aprender Git en la plataforma de Udacity: https://www.udacity.com

Fuente: i.pinimg.com