Los equipos de desarrolladores utilizan sistemas de control de versiones. El más común es Git. Vamos a ver qué significa, para qué sirve y cómo funciona.
Git es un sistema para gestionar las versiones del código fuente de los programas. En este artículo, conoceremos sus funciones principales, veremos las diferencias con GitHub y explicaremos por qué Git es útil para principiantes. También aprenderás cómo empezar a utilizarlo y por qué no deberías perder el tiempo con programas alternativos.
¿Qué es Git?
Imagínate en un equipo de desarrollo. Descargas una copia del proyecto a tu ordenador y empiezas a escribir código. Lo mismo hacen los demás desarrolladores. Después de un tiempo, el equipo necesita combinar el código e intercambiar los cambios entre sí. Es aquí donde entran en juego el programa Git y el servicio GitHub.
En esta sección, te familiarizarás con las funciones principales que ofrece Git. Esto es la teoría. En la última sección, añadiremos instrucciones para que puedas instalar Git en tu ordenador.
Es un sistema de commits
Imagina esta situación: un jugador llega a la fase final, pierde y vuelve al principio del nivel; llega al último punto de guardado del juego, donde los desarrolladores permitieron guardar la partida. Si quitáramos los puntos de guardado, después de cada derrota tendríamos que empezar el juego de nuevo.
En programación, el sistema de control de versiones se encarga de guardar el código en puntos de control; es una tecnología especial que se puede conectar a cualquier proyecto. El sistema de control de versiones protege contra errores y devuelve el código al estado en el que todo funcionaba correctamente.
Estos puntos de control se llaman commits. Un commit es un paquete de cambios que almacena información sobre los archivos de código añadidos, editados o eliminados. Se recomienda añadir como máximo diez cambios a un commit; de esta manera se obtiene un historial de versiones extenso que permite, en caso de error, retroceder con la mínima pérdida de código funcional.
Es un complejo de ramas interconectadas
Los commits se ubican en la rama master, la versión principal del proyecto, que tras finalizar el trabajo se convertirá en el producto.
El sistema de control de versiones permite crear ramificaciones de la rama master y experimentar con el proyecto sin molestar a otros miembros del equipo.
Tomemos el diagrama anterior, donde encontramos un error y volvimos un commit atrás. Para corregir el código, crearemos varias ramas adicionales y probaremos diferentes soluciones en cada una. Cuando encontremos la solución, trasladaremos la rama con el código correcto a la rama master y guardaremos el commit. Las ramas innecesarias se dejan o se eliminan, ya que no afectan al proyecto y están ocultas a otros desarrolladores; es tu borrador personal.
Es una herramienta de creación de código colaborativa
A menudo ocurre que los desarrolladores se separan de la rama master y trabajan en una parte del proyecto de forma independiente, por ejemplo, para probar funciones adicionales. Pero no pueden continuar hasta que alguien del equipo termine de escribir el código.
El sistema de control de versiones permite no esperar a la actualización de la rama master y permite a todos los miembros del equipo moverse libremente entre las ramas de otros desarrolladores para copiar los fragmentos de código necesarios.
También hay situaciones inversas, en las que varios desarrolladores escriben código simultáneamente, lo cargan en la rama master y se encuentran con un conflicto: un archivo recibe varios cambios no coincidentes. En este caso, Git intentará corregir los errores automáticamente. Si no funciona, los desarrolladores lo verán y podrán corregir el código manualmente.
Cómo funciona Git
Los sistemas de control de versiones pueden ser locales, centralizados o distribuidos.
- Un sistema local almacena los archivos en un único dispositivo; un sistema centralizado utiliza un servidor común, y un sistema distribuido utiliza un almacenamiento en la nube común y los dispositivos locales de los miembros del equipo. Los sistemas locales son convenientes para trabajar con proyectos grandes, pero dificultan la interacción con un equipo remoto.
- En los sistemas centralizados, el trabajo remoto está bien establecido, pero todo está vinculado a un solo servidor. Cualquier fallo o intrusión puede dañar los archivos del proyecto.
- En los sistemas distribuidos, el trabajo remoto está bien establecido. Si ocurre algo con los archivos del repositorio principal, el proyecto se puede restaurar fácilmente desde la copia de cualquier miembro del equipo.
Diferencias entre Git y GitHub
Git es un programa que debe instalarse y conectarse a un proyecto para gestionar el sistema de control de versiones. GitHub es un sitio web de almacenamiento para los historiales de versiones de los proyectos: conectas Git, te registras en GitHub, creas un repositorio en línea y transfieres los archivos de Git a GitHub.
Git es el sistema de control de versiones más popular, mientras que GitHub es un repositorio de código en línea. Git y GitHub están diseñados para interactuar y, por lo tanto, a menudo se utilizan como un único mecanismo de trabajo con un proyecto.
Si es necesario, Git se puede sustituir por un programa alternativo de control de versiones, y GitHub por otro repositorio de código en línea. La mayoría de los empleadores no lo necesitan, ya que conocer otros servicios lleva tiempo y resulta incómodo para muchos desarrolladores.
¿Por qué un principiante debería aprender Git?
Git se utiliza en la mayoría de las empresas donde al menos dos desarrolladores trabajan en un proyecto:
- Un nuevo miembro se une a la empresa y clona el repositorio del proyecto en su ordenador.
- Recibe una tarea, crea una nueva rama y escribe código.
- Cuando termina, envía una solicitud para añadir el código a la rama master.
- Otros desarrolladores revisan el código, dejan comentarios e indican los errores.
- El nuevo miembro mejora el código, actualiza la rama master y pasa a la siguiente tarea.
Esta es una esquema general de cómo funciona el trabajo en equipo en un proyecto. No incluye las normas de uso de Git que cada equipo crea para sí mismo. Por ejemplo, cada equipo tiene su propio procedimiento para revisar el código y sus propios criterios para determinar si está listo para añadirse a la rama master.
Conocer Git y conocer las normas de uso de Git en un equipo son dos habilidades diferentes que se pueden comparar con la capacidad de conducir un automóvil y el conocimiento del código de circulación. Si sabes conducir, te será más fácil concentrarte y aprender rápidamente las normas. Con Git, la situación es similar: si sabes gestionar el sistema de control de versiones, puedes integrarte inmediatamente en el proyecto, no distraerte con cosas secundarias y concentrarte en la calidad del código.
Cómo empezar: 3 pasos para dominar Git
Esta es la sección práctica. Instalaremos Git en el ordenador, lo configuraremos para que funcione, crearemos un repositorio local y cargaremos en él el primer archivo.
Instalación
Ve al sitio web git-scm.com y elige la forma de instalar Git para tu sistema operativo. Para Windows, puedes descargar el archivo de instalación e instalar Git como un programa normal. No es necesario cambiar la configuración básica.
En macOS y Linux, es conveniente instalar Git a través del programa “Terminal”. Si tienes Linux, averigua el nombre de tu distribución. Si tienes macOS, instala el gestor de paquetes Homebrew. Después, introduce el comando de descarga.
# Instalar Git en macOS
$ brew install git
# Instalar Git en distribuciones populares de Linux
# Fedora
yum install git
# Debian/Ubuntu
apt-get install git
# OpenSUSE
zypper install gitSi tienes macOS o Linux, quédate en “Terminal”. Si tienes Windows, abre el programa Git Bash, que se instalará junto con el sistema Git.
Introduce el comando en la consola y comprueba la instalación de Git. Deberías ver el número de versión que se ha cargado en tu sistema. A veces, en lugar del número de versión, aparece un mensaje de error: Unsupported command: git. Esto significa que Git no se ha podido instalar y el proceso debe repetirse.
# Comando para comprobar la instalación de Git
git --versionConfiguración
Después de instalar Git, debes realizar la configuración inicial. Para ello, debes indicar tu nombre, apellido y correo electrónico. Estos datos son visibles en los commits, y otros desarrolladores sabrán cuándo has realizado cambios en el proyecto.
# Comando para indicar el nombre y el apellido
git config --global user.name "Nombre Apellido"
# Comando para indicar el correo electrónico
git config --global user.email "tu@correo"
# Comando para comprobar la configuración
git config --listCreación de un repositorio
Una vez configurado Git, puedes crear un proyecto. Para ello, ejecutaremos algunos comandos: crearemos una nueva carpeta, accederemos a ella e inicializaremos el repositorio.
Si el repositorio se inicializa correctamente, en tu proyecto aparecerá una carpeta oculta .git. En esta carpeta, el sistema Git almacenará la meta información necesaria para su funcionamiento. Este es tu repositorio local.
# Crear una nueva carpeta
mkdir nombre_del_proyecto
# Ir a la carpeta creada
cd nombre_del_proyecto
# Inicializar el repositorio local
git init
# Comprobar la lista de archivos y carpetas abiertos y ocultos
ls -aComprobemos el funcionamiento del repositorio. Para ello, crearemos un nuevo archivo y realizaremos un commit; lo guardaremos en nuestro repositorio local. Los comandos necesarios son:
# Crear un archivo de texto
echo "# Mensaje de prueba" >> test.txt
# Preparar el archivo de texto para el commit
git add .
# Realizar el commit y guardar el archivo en el repositorio
git commit -m "Mi primer commit"Introducimos el comando git log y miramos el registro. Debería aparecer información sobre el commit realizado. Verás la fecha de los cambios, el nombre y el apellido del autor, el correo electrónico, el texto del mensaje y el hash del commit. Ahora, si continuas con el desarrollo, en cualquier momento podrás volver y ver en qué estado se encontraba el proyecto en la fase del primer commit.
¿Qué sigue?
Lee también: 30 Comandos Básicos de Git que debes Conocer
Has conocido el sistema Git, lo has instalado en tu ordenador, has creado tu repositorio local y has aprendido a cargar archivos en él a través de la consola.
Si estás listo para el siguiente paso, te recomendamos que estudies los comandos básicos para interactuar con Git y GitHub. Te permitirán gestionar el flujo de trabajo, las ramas y el repositorio remoto. Hemos escrito un artículo sobre estos comandos y lo hemos complementado con un seminario web práctico con un experto.