GIT in InprOTech Guardian

Techpapers

GIT es un sistema de control de versiones distribuido que se utiliza para rastrear los cambios en el código fuente de un proyecto. Fue creado por Linus Torvalds en 2005 para el desarrollo del kernel de Linux y hoy en día es ampliamente utilizado por desarrolladores de software en todo el mundo.

El uso de Git permite a los desarrolladores trabajar juntos en un proyecto de forma colaborativa, ya que cada miembro del equipo puede trabajar en su propia copia del repositorio de Git y luego fusionar los cambios en una sola versión del código fuente.

 

Funcionamiento Interno de Git

Su funcionamiento interno se basa en la creación de una base de datos de cambios, que se denomina repositorio, y que almacena todas las versiones del código fuente, junto con los metadatos relacionados con cada cambio.

Cada vez que se realiza una modificación en los archivos que se están rastreando con Git, se crea un registro de ese cambio, que incluye información como el autor del cambio, la fecha y hora en que se realizó, y un mensaje de confirmación que describe la naturaleza del cambio. Estos registros se almacenan en una estructura de árbol de versiones, que permite acceder a cualquier versión anterior del código fuente en cualquier momento.

Git también utiliza un sistema de ramificación para permitir que varios desarrolladores trabajen en diferentes partes del proyecto al mismo tiempo sin interferir en el trabajo de los demás. Cada rama es una línea de desarrollo independiente que se puede fusionar con otras ramas cuando el trabajo se completa y se aprueba.

Además, Git utiliza un protocolo de comunicación de red para sincronizar los repositorios entre diferentes máquinas, lo que permite a los desarrolladores trabajar en el mismo proyecto desde diferentes lugares y compartir los cambios de manera fácil y segura.

En resumen, Git funciona mediante la creación de una base de datos de cambios, que se almacena en un repositorio y permite el control de versiones, el seguimiento de los cambios, la creación de ramas de desarrollo y la sincronización de cambios entre diferentes máquinas.

 

Conceptos Clave de Git

Repositorio (repository)

Un repositorio en Git es donde se almacena todo el código fuente y los archivos de un proyecto. Los repositorios pueden ser locales o remotos. Un repositorio remoto puede ser alojado en un servidor, como GitHub, BitBucket o GitLab.

Confirmación (commit)

Una confirmación es un registro de los cambios realizados en el repositorio. Cada confirmación tiene un identificador único llamado hash que se utiliza para identificar la confirmación.

Rama (branch)

Una rama en Git es una versión separada del repositorio. Las ramas se utilizan para desarrollar nuevas características o solucionar errores sin afectar la versión principal del proyecto.

Traer (pull)

Sincroniza los contenidos de un repositorio remoto con un repositorio local. Es considerada una buena práctica realizar esta acción antes de ponerse a trabajar en un proyecto para asegurar el estar trabajando con la versión más reciente. 

Subir (push)

Implementa los cambios realizados en una confirmación a una rama de trabajo del repositorio remoto. 

Fusión (merge)

La fusión es el proceso de combinar dos ramas diferentes en una sola rama. La fusión se utiliza para integrar el trabajo realizado en una rama en otra rama.

Etiqueta (label)

Una etiqueta en Git es un nombre asociado a un hash específico de confirmación. Las etiquetas se utilizan para marcar versiones específicas de un proyecto.

 

Flujos de Trabajo en Git

Flujo de Trabajo Básico

El flujo de trabajo básico en Git comienza con la creación de un nuevo repositorio. Una vez creado el repositorio, los desarrolladores pueden trabajar en el proyecto y realizar confirmaciones de los cambios realizados. Los cambios se pueden revertir si es necesario, y las ramas se pueden utilizar para trabajar en diferentes versiones del proyecto. Una vez que el trabajo en una rama está completo, se puede fusionar en la rama principal.

Flujo de Trabajo GitFlow

GitFlow es un flujo de trabajo popular utilizado en proyectos de software. El flujo de trabajo GitFlow utiliza dos ramas principales: master y develop. La rama develop se utiliza para desarrollar nuevas características, mientras que la rama master se utiliza para las versiones estables del proyecto. Se crean ramas adicionales para trabajar en nuevas características o solucionar errores. Una vez que se completa el trabajo en una rama, se fusiona en la rama develop. Cuando se realiza una versión estable, se crea una etiqueta en la rama master.

Flujo de Trabajo GitHub Flow

GitHub Flow es un flujo de trabajo simplificado que se utiliza con frecuencia en proyectos pequeños y medianos. El flujo de trabajo GitHub Flow utiliza una rama principal llamada main o master. Los desarrolladores crean una rama separada para trabajar en una nueva característica o solucionar errores. Una vez que el trabajo en una rama está completo, se fusiona en la rama main. Las etiquetas se utilizan para marcar versiones específicas del proyecto.

 

Uso de Git en Guardian

Guardian en pocas palabras

Es un servicio de cibervigilancia y reporte en tiempo real enfocado en las redes industriales OT. A través de este servicio un usuario dispone de una herramienta sencilla y una interfaz gráfica intuitiva para la visualización de alertas/incidencias, dispositivos, vulnerabilidades en los distintos dispositivos.

Aportación de Git al equipo de desarrollo

  • Colaboración: Git permite que múltiples personas trabajen en el mismo proyecto al mismo tiempo y puedan colaborar de manera más efectiva, gracias a su capacidad para fusionar cambios de forma eficiente y resolver conflictos.
  • Control de versiones: Git permite realizar un seguimiento de todos los cambios realizados en el código fuente, lo que facilita la identificación y corrección de errores, y ayuda a mantener un historial detallado de todas las versiones del proyecto.
  • Ramificación: Git permite crear ramas para trabajar en diferentes características o funcionalidades de un proyecto, lo que facilita la gestión de cambios y la integración de nuevas funcionalidades al proyecto principal.
  • Comprobación de errores: Git a través de una plataforma especializada permite la ejecución de pruebas automáticos al subir una rama.
  • Aprobación de código: antes de cada merge a la rama principal los desarrolladores crean una petición de mergeo, también llamado merge request, para que otro desarrollador compruebe los cambios y si todo es correcto, fusione ambas ramas.

Conclusiones

Git es un sistema de control de versiones poderoso y flexible que permite a los desarrolladores trabajar en proyectos de software de forma colaborativa. Con una comprensión sólida de los conceptos básicos de Git y los flujos de trabajo, los desarrolladores pueden utilizar Git para gestionar proyectos de software.

Deja una respuesta

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

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar

keyboard_arrow_up