What is Git and How to Start Work with Git Version Control?

El autor de este artículo es el experto en tecnología Pieter Murphy.

Experto invitado, director de Desarrollo de Talentos en EPAM y creador del curso de control de versiones Git Vitali Shulha.

Desarrollo de Talentos, creador del curso de control de versiones Git Vitali Shulha


Según el creador de Git, Linus Torvalds, “git” no es una abreviatura, sino un sistema de control de versiones que utilizan desarrolladores de todo el mundo. Sirve para hacer un seguimiento de las distintas versiones de un código mientras se colabora con otros desarrolladores.  

Si estás trabajando en un proyecto concreto durante un largo período, es posible que quieras estar al tanto de los cambios que se realizan, cuándo se hicieron y por quién. Esto es aún más importante si aparece un error de código. 

Puedes utilizar el sistema de control de versiones Git cuando necesites ayuda con este tipo de situaciones. Sin embargo, el control de versiones con Git puede parecer un poco intimidante o confuso cuando recién se está empezando. 

Por tal motivo, en este artículo, voy a repasar Git de la manera más accesible que se pueda. Explicaremos qué son exactamente Git y GitHub, las razones para usar el control de versiones Git, sus beneficios, cómo empezar, ¡y mucho más! 

¿Qué son Git y GitHub?

Git es un sistema de control de versiones que puedes obtener en línea y descargar en tu computadora. Si quieres trabajar en tu propio proyecto o colaborar con tus colegas desarrolladores, es importante que utilices la gestión de versiones Git.  

Si quieres comprobar si ya tienes instalado Git en tu computadora, todo lo que tienes que hacer es ingresar el comando git --version en el terminal. Si lo tienes, entonces sigue adelante y averigua con qué versión cuentas. 

Si no, ve al Git website y sigue las sencillas instrucciones de descarga para instalar la versión correspondiente a tu sistema operativo. Ahora, GitHub es un producto que te permite alojar tus proyectos Git en un servidor remoto; también conocido como la nube.  

Es importante tener en cuenta que hay una diferencia entre GitHub y Git. GitHub es simplemente un servicio de alojamiento web. Otras empresas que ofrecen servicios de alojamiento web que realizan tareas similares a GitHub son GitLab y Bitbucket.

¿Por qué debería utilizar el control de versiones Git?

El 87% de los desarrolladores software  utilizan el control de código fuente de Git en lugar de otros sistemas como Perforce, Mercurial y CVS, porque Git tiene la estabilidad, velocidad y adaptabilidad necesarias para sobresalir en mercados de ritmo rápido. 

Las ramas de Git son ligeras y el protocolo es rápido, por lo que cualquiera puede contribuir desde cualquier lugar. Aprender las mejores prácticas de control de versiones con Git es una forma segura de convertirse en un desarrollador más competente y resistente.  

Los beneficios del control de versiones con Git

Git es un sistema de control de versiones que constituye una herramienta esencial para cualquier equipo de desarrollo de software, ya que permite colaborar en proyectos, realizar un seguimiento de los cambios en su código base y volver a versiones anteriores cuando sea necesario. Estas son algunas de las ventajas de utilizar el control de versiones con GitHub: 

Colaboración: con el software de versiones de Git, varias personas pueden trabajar simultáneamente en la misma base de código y ver los cambios de los demás en tiempo real. Esto permite trabajar en un proyecto sin sobrescribir el trabajo de los demás.  

Historial y auditoría: el control de código fuente de Git permite ver todo el historial de un proyecto. También ayuda con el cumplimiento y la auditoría, ya que puedes ver cuándo se hicieron los cambios y por quién.  

Revisión del código: cuando un desarrollador cambia el código base, otros pueden revisarlo y proporcionar comentarios antes de que el código se fusione con la rama principal, lo que garantiza una alta calidad.  

Branching: el control de código fuente Git permite crear branches que son útiles para trabajar en múltiples características simultáneamente o probar nuevas características. Los cambios pueden fusionarse posteriormente.  

Revertir cambios: si quieres volver a una versión anterior o algo va mal, Git te permite revertir los cambios fácilmente, lo que te ahorrará bastante tiempo y frustración.

Control de versiones Git — beneficios

Cómo empezar a utilizar Git para el control de versiones

GUI vs Terminal 

Puedes utilizar Git mediante una interfaz gráfica de usuario (GUI), como GitKraken y Sourcetree, o ingresando comandos en el terminal.  

Si prefieres usar un terminal, tendrás que buscar los comandos de Git que necesitas tener. La buena noticia es que no hace falta que te los sepas de memoria. Aparte de unos pocos comandos que usarás con más frecuencia, siempre puedes buscar el resto cuando los necesites. Y te cuento un secreto: de todas maneras, esto es lo que hace la mayoría de los desarrolladores, incluso los que tienen años de experiencia. Además, el sitio web de Git ofrece un montón de documentación detallada.  

Sin importar si decides usar una GUI como el terminal, primero tendrás que entender lo básico de cómo funciona Git para ganar confianza.  

Pasemos ahora a cómo usar Git en el terminal. No obstante, los pasos a seguir son muy similares a los de la interfaz gráfica.  

Preparar una carpeta de proyecto en Git

Para usar Git, primero necesitas un proyecto para el control de versiones. Puede ser un proyecto existente o uno completamente nuevo.  

Si el proyecto es nuevo, entonces necesitas crear una nueva carpeta de proyecto (puedes buscar en línea el comando) y luego ir a esa carpeta de proyecto en el terminal.  

Si estás trabajando con un archivo existente, puedes simplemente navegar a esa carpeta de proyecto en el terminal. 

Crear un repositorio Git

Una vez que estés en la carpeta de tu proyecto, necesitarás usar el comando git init para crear o iniciar un repositorio, antes de poder empezar a utilizarlo.  

Después de ejecutar el comando en el terminal, puede parecer que no ha pasado nada, pero no te confundas. Git a veces puede ser astuto y mucho de lo que hace tiene lugar entre bastidores.  

Para ver lo que Git está haciendo entre bastidores, tendrás que ver tus archivos ocultos. Asegúrate de abrir la carpeta de tu proyecto en tu sistema de archivos. Entonces, si estás usando el sistema operativo Windows, puedes cambiar la configuración de la vista para ver los archivos ocultos en tu sistema. 

Si estás en una Mac, todo lo que tienes que hacer es seleccionar Comando + Mayúsculas + Punto para ver tus archivos ocultos en el sistema.  

Para ver los archivos ocultos en el terminal, utiliza el comando ls -a. Lo que verás después es una carpeta .git dentro de la carpeta del proyecto, que generalmente representa el repositorio. 

¿Qué es un repositorio Git?

Un repositorio es la carpeta .git dentro de la carpeta del proyecto. Permite realizar un seguimiento de los cambios realizados en los archivos del proyecto y registra el historial de todo lo que sucede a lo largo del tiempo.  

También puedes alojar el repositorio en tu computadora, lo que se conoce como repositorio local.  

He mencionado servicios como Bitbucket, GitLab y GitHub. Cuando subes o, en otras palabras, empujas tu repositorio local a cualquiera de estos servicios, puedes acceder a él en la nube, también conocido como repositorio remoto. 

Necesitas utilizar el repositorio remoto para colaborar con otros y para hacer copias de seguridad de tus proyectos en caso de dificultades o complicaciones con tu computadora o laptop. 

Colaborar con otros desarrolladores a través de Git

Si encuentras a otro desarrollador interesado en colaborar contigo en tu proyecto, puede clonar o, en otras palabras, descargar a su computadora el repositorio remoto desde el servicio de alojamiento que subiste. 

Esto les permitirá tener el proyecto en su computadora, donde se denomina repositorio local.  

En un proyecto con varios desarrolladores, cada uno de ellos tiene un repositorio local en su computadora. También tienen un repositorio remoto que utilizan para compartir su trabajo y para todos contribuyan. 

Entonces, ¿qué es el control de versiones y cómo se pueden documentar los cambios? Vitali Shulha, director de Desarrollo de Talentos de EPAM, nos responde: 

“El control de versiones es un elemento esencial del ciclo de vida del desarrollo de software. En pocas palabras, la mayoría de los programas, scripts y datos son texto, por lo que la mayor parte de los trabajos de desarrollo consiste en realizar cambios en los archivos de texto. El sistema de control de versiones, como Git, tiene como objetivo hacer que este proceso sea fácil, transparente y flexible. Cada cambio realizado en Git se empaqueta en un 'commit' como un contenedor atómico. Un commit puede considerarse como un vagón con cambios almacenados en su interior. Varios commits forman un tren, esto se llama 'branch' en términos de Git. Un proyecto Git, que se llama 'repository' puede tener docenas o incluso miles de branches adentro con diferentes versiones de software. Aun así, para un proyecto simple se puede usar un solo branch para simplificar las cosas”. 

Flujo de trabajo del control de versiones Git

Paso 1: editar archivos

Si no tienes un proyecto existente, empieza por crear el primer archivo en tu nuevo proyecto. Puedes hacerlo directamente en el terminal o utilizando un editor de texto. Si tienes un proyecto existente, entonces puedes seguir adelante y editar, añadir o eliminar archivos según sea necesario. 

A continuación, utilizarás el comando git status para encontrar el estado de tu área de preparación y directorio de trabajo, lo que te indicará si los dos tienen alguna diferencia.  

Paso 2: añadir archivos al área de preparación

Puedes usar el comando git add para añadir archivos nuevos o actualizados al área de preparación. Si no quieres tener los archivos que has cambiado en tu próxima confirmación, no añadas esos archivos específicos al área de preparación. 

Paso 3: hacer el commit

El paso final es hacer el commit usando el comando git commit con la opción -m y pasando un mensaje de commit. Puedes usar el comando git log para enumerar todos los commits que tienes en el proyecto en orden cronológico inverso.  

Control de versiones con git — flujo de trabajo

¿Cómo puedes colaborar con otros desarrolladores utilizando el control de versiones en GitHub? Bueno: “En el desarrollo moderno, la colaboración se realiza a través de repositorios públicos llamados 'remotos'. Las estrategias más populares son empaquetar commits en una solicitud de cambio como 'merge request' o 'pull request' dependiendo de la estrategia. Funciona de la siguiente manera: el desarrollador hace una copia de un proyecto de software mediante la función de bifurcación o fork y, a continuación, añade los cambios como un conjunto de commits. Una vez hecho esto, hacen una solicitud para “fusionar” el proyecto con los cambios realizados con el ‘upstream’ branch o repositorio. La mayoría de los servidores Git ofrecen una elegante interfaz web donde los cambios pueden ser revisados por otro desarrollador y, finalmente, aceptados en la base de código ascendente. La colaboración dentro del repositorio Git es una idea clave y se realiza a diario”, responde Vitali Shulha. 

Cómo aprender control de versiones Git con cursos de Anywhere Club

Si te interesa perfeccionar tus habilidades y aprender más sobre Git y el control de versiones de GitHub, entonces te sugiero hacer el curso Version Control with Git  de Vitali Shulha. Es un curso gratuito que ha sido supervisado por desarrolladores experimentados para desarrolladores de cualquier nivel. Incluye tareas prácticas, cuestionarios y conferencias.  

En el curso, obtendrás más conocimientos sobre: 

● Fundamentos de Git para el control de versiones 

● Trabajar con GitHub 

● Deshacer cambios 

Branching y fusión 

Entonces, ¿te estás preguntando si el curso es adecuado para desarrolladores intermedios que están familiarizados con el control de revisiones Git? La respuesta rápida es sí. 

Vitali Shulha explicó además que, aunque la capacitación comienza desde los fundamentos mismos del control de versiones y cubre los pasos iniciales de la configuración de Git y el flujo de trabajo general, también explica cómo funciona el sistema en pocas palabras, lo que puede ser beneficioso para mejorar la eficacia de operaciones más avanzadas. 

Temas como deshacer cambios, almacenar, gestionar remotos, fusionar conflictos, resolver y estrategias de branching serían beneficiosos incluso para desarrolladores experimentados. 

Las opiniones expresadas en los artículos de esta página web son exclusivamente de los autores y no necesariamente representan las opiniones o puntos de vista de Anywhere Club o de sus miembros.
Publicaciones relacionadas
Sigue las noticias en tus plataformas favoritas