“Hablar es barato. Muéstrame el código

Linus Torvalds 

En la ingeniería de software, es vital tener en cuenta el control de versiones, un aspecto que facilita la colaboración, el mantenimiento y la recuperación en caso de fallos. Aquí es donde entra en escena Git y su variante en la nube, GitHub, desempeñando un papel vital en el proceso de desarrollo de software.

 

Git y GitHub

“Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.

(git-scm.com/book)

Git es una herramienta que permite el control de versiones de código. Su propósito es rastrear los cambios en los archivos de un proyecto y facilitar la colaboración entre los miembros del equipo. La principal distinción entre Git y GitHub es que el primero se instala y se utiliza localmente, mientras que el segundo es una versión en la nube que ofrece una interfaz de usuario y características adicionales.

Una de las ventajas de Git es su amplia aceptación en la comunidad de desarrolladores. Es compatible con todos los lenguajes de programación y permite un enfoque descentralizado para el control de versiones, lo que significa que cada desarrollador puede trabajar de manera independiente.

Ilustración 1. Ejemplo de un escenario típico en el que dos desarrolladores trabajan en un archivo de forma colaborativa ( gist.github.com)

¿Qué información nos puede ofrecer una herramienta como Git o GitHub?

Commits

 

Ilustración 2. Combinación de confirmaciones en GitHub Desktop (gist.github.com)

Los commits son como instantáneas del código en un punto particular en el tiempo. Cada commit tiene un ID único, un autor, una fecha y un mensaje que describe los cambios realizados. Estos commits son fundamentales para entender la evolución de un proyecto y su historial de cambios.

Branches y Pull Requests

Ilustración 3. Ejemplo de la interfaz de pull requests en GitHub (opensource.com)

Los branches son versiones paralelas del código que permiten trabajar en diferentes características o bugs sin afectar el código principal (usualmente llamado “master” o “main”). Cuando un branch está listo para ser integrado en el código principal, se crea una “pull request” para revisar los cambios antes de su incorporación.

Conflictos de Merge

Ilustración 4. Ejemplo de un conflicto de merge en Git. (docs.github.com)

En ocasiones, cuando varios desarrolladores trabajan en las mismas partes del código, pueden surgir conflictos durante la combinación de branches. Git destaca estos conflictos y permite a los desarrolladores resolverlos manualmente.

 ¿Por qué usar Git y GitHub?

Git y GitHub aportan una serie de beneficios como el seguimiento de cambios, la colaboración eficiente, la recuperación de versiones anteriores y la capacidad de trabajar de forma descentralizada. Además, GitHub ofrece funciones adicionales, como la gestión de issues, la documentación del proyecto y la integración con otras herramientas de desarrollo.

En mi opinión, el uso de herramientas de control de versiones como Git y GitHub puede mejorar enormemente la forma en que desarrollamos software. Nos permiten ser conscientes de lo que estamos haciendo bien, y especialmente, de lo que podríamos estar haciendo mal.

Reflexión final

El control de versiones es un elemento esencial en el desarrollo de software moderno. Ya no es suficiente simplemente producir una aplicación o programa funcional; debemos garantizar que estamos desarrollando de manera efectiva y siguiendo buenas prácticas para minimizar los errores y fallos en nuestra aplicación. Hemos visto cómo Git y GitHub pueden desempeñar un papel importante en nuestra cultura de desarrollo y, afortunadamente, su implementación no es nada complicada. Tenemos las herramientas a nuestro alcance; depende de nosotros decidir si las adoptamos y desarrollamos software de calidad, o si simplemente nos quedamos en nuestra zona de confort.

Si quieres profundizar más sobre este tema te invitamos a consultar la siguiente bibliografía:

  1. Castellanos, E. (2021, febrero 14). Git vs GitHub – ¿Qué es el Control de Versiones y Cómo Funciona? Recuperado de www.freecodecamp.org/espanol/news/git-vs-github-what-is-version-control-and-how-does-it-work
  2. Chacon, S. y Straub, B. (2014). Pro Git, 2nd Edition. Recuperado de git-scm.com/book/en/v2
  3. GitHub. (s.f.). Documentación de GitHub. Recuperado de docs.github.com/es
  4. GitHub. (s.f.). Gist: Instantly share code, notes, and snippets. Recuperado de gist.github.com/starred

Si te gustó este post únete a Castor Comunidad. Como miembro de la Comunidad Castor, tendrás acceso a eventos exclusivos y oportunidades de aprendizaje que te permitirán expandir tus horizontes y desafiar tus preconcepciones.

Contáctanos