Introducción a los sistemas de control de versiones con Git

Publicado por Daniel Rodríguez en

Una de las habilidades clave para cualquier profesional que trabaje con código es la gestión de este. Entre los que se encuentran también los científicos de datos. Para identificar los posibles errores es clave poder conocer qué cambios se han introducción en un proyecto y cuándo han tenido lugar. La herramienta clave para la realización de esta traerás son los sistemas de control de versiones. Uno de los sistemas más populares es en la actualidad es Git. En esta entrada se va a realizar una introducción a los sistemas de control de versiones en la que se va a utilizar esta herramienta como referencia.

Sistemas de control de versiones

Los sistemas de control de versiones son una herramienta que permiten gestionar las modificaciones realizados en archivos de texto. Facilitando así la identificación de todos los cambios existentes entre dos versiones de un mismo archivo. A la hora de trabajar con código esta información es clave para poder identificar y corregir los problemas.

El conjunto de archivos se almacena en un repositorio. En base a la arquitectura de los repositorios los sistemas de control de versiones se pueden dividir en dos: los centralizados y los distribuidos. En los sistemas centralizados existe un único repositorio, generalmente ubicado en un servidor, con todo el código del que el responsable es un único usuario. Ejemplos de estos sistemas son SCV y Subversion. Por otro lado, en los sistemas distribuidos cada usuario dispone de una copia del repositorio, pudiendo intercambiar los cambios entre ellos. Ejemplos de estos sistemas son Git y Mercurial.

Los sistemas distribuidos ofrecen ciertas ventajas como una menor necesidad de conexión a la red y la posibilidad de trabajar en remoto. Haciendo que estos sean cada vez más populares. Especialmente en los proyectos libres.

Git

Git es, sino el más, uno de los sistemas de control de versiones más utilizados en la actualidad. Fue diseñado inicialmente por Linus Torvalds en el año 2005, el creador del sistema operativo Linux, para funcionar de forma eficiente y confiable cuando los repositorios tengan un gran número de archivos.

Para instalar git en una máquina simplemente se ha de ir a la página de proyecto y seguir las instrucciones para la plataforma en la que se desea instalar.

Trabajo básico con git

Al iniciar un nuevo proyecto es una buena idea crear un nuevo repositorio en el que ir guardando los cambios. En caso de que se tenga instalado git en la máquina simplemente se ha abrir una terminal, ir a directorio en el que se encuentra el código e introducir el comando

git init

Este comando creará una carpeta .git en la que se encuentra el repositorio local. En este momento los archivos en la carpeta no están gestionados por el sistema de gestión de versiones. Es necesario indicar a este los archivos se desea agregar, para lo que se utilizara el comando

git add 

En donde se reemplazará por el nombre del archivo. En el caso de que se deseen incluir todos los archivos de la carpeta no es necesario realizar la tarea a mano. Simplemente se ha de utilizar punto (.) en lugar del nombre del archivo en el comando. Ahora que los archivos se encuentran en seguimiento es necesario guardar estos en el repositorio. Para ello es necesario utilizar otro comando que indique esto a git. En esta ocasión el comando es `commit, es decir, se ha de escribir

Git commit

Cada una de las subidas al repositorio ha de contener un mensaje que permita identificar los cambios que contienen. Para esto aparecerá un editor de texto en el que se pedirá que se introduzca la descripción de la subida. Opcionalmente se le puede indicar el mensaje en el propio comando mediante la opción -m. Para lo que se ha de entrecomillar en mensaje inmediatamente después del comando. Escribir un buen mensaje es clave para en un futuro no saber rápidamente la versión que contiene los cambios que deseamos comprobar.

En este punto se han guardado los archivos de la carpeta y git rastrea todos los cambios que se realizan en los mismos.

Creación de una nueva versión

Ahora si se modifica el contenido de un archivo git los sabrá. Para ello solamente se ha de ejecutar el comando

git status

El cual dará como resultado el listado de archivos con cambios. Para agregar estos primero se han de añadir con el comando add que ya se ha visto o con el modificador -a en comando commit. Para agregar los cambios en un único paso simplemente se ha de escribir el comando

git commit -a -m “Cambios”

Consiguiente que se añadan todos los cambios a una nueva versión que contiene el mensaje “Cambios”. Obviamente este mensaje no es significativo, siendo necesario explicar más los cambios en un repositorio real.

Sincronizar repositorios

Sincronizar repositorios en un sistemas de control de versiones

Se ha creado un primer repositorio con el código de un proyecto y se han guardado los cambios. Esto es un gran avance, pero se encuentra en una única ubicación, con los riesgos que esto conlleva. El repositorio se puede sincronizar con otro disponible en otra ubicación. Para esto se han de añadir los repositorios remotos mediante el comando

git remote add  

En esta ocasión se ha de reemplazar por un nombre para el repositorio y con la ubicación de este. Una vez indicado el repositorio se puede ver la lista de repositorios remotos mediante el comando

git remote

Para recibir los cambios se ha de escribir

git fetch 

Por otro lado, para enviarlos se ha de utilizar

git push   

En ambos casos es el nombre que se le ha dado previamente al repositorio y es el nombre de la rama local que se desea sincronizar.

Conclusiones

En esta entrada se ha visto los pasos para crear un repositorio con git, añadir archivos, seguir los cambios de estos y sincronizar los resultados con un repositorio externo. Estos son unos primeros pasos que permiten gestionar el código de una forma más eficiente y segura que simplemente guardando estos en el disco duro de ordenador.

Los procesos explicados son solamente los primeros pasos. La gestión del código se puede mejorar aún más mediante la utilización de ramas y metodologías como git-flow.

Imágenes: Pixabay (kuszapro) | Pixabay (krzysztof-m)

Sin votos
Por favor espera...
Categorías: Herramientas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *