Guía para principiantes y para quienes no les gustó GitHub.
GitLab es un servicio para almacenar código, gestionar versiones y desarrollar software colaborativamente. En este artículo, examinaremos a detalle sus términos principales, comprenderemos para qué se utiliza y practicaremos en tu computadora.
¿Qué es GitLab?
GitLab es una plataforma web para gestionar proyectos y repositorios de código, basada en el popular sistema de control de versiones Git. Para entender sus capacidades y cómo ayuda a los desarrolladores, comencemos analizando los conceptos básicos.
El sistema de control de versiones Git se utiliza para almacenar versiones intermedias del código. Por ejemplo, cuando un desarrollador realiza cambios o añade nuevas partes, lo hace en Git mediante commits.

También puedes leer: ¿Qué es Git?: explicación con diagramas
Un commit es un paquete de cambios que almacena información sobre los archivos de código añadidos, editados o eliminados. Gracias a esto, el código principal del proyecto siempre se puede restaurar a un estado funcional, recuperando versiones anteriores.
Repositorio: El lugar donde se almacena el código y los archivos adicionales necesarios para su funcionamiento o el diseño de las ventanas de la aplicación: iconos, imágenes, etc. Un repositorio es similar a una carpeta normal en tu computadora, pero con funciones adicionales. Por ejemplo, cada archivo que almacena tiene un historial de cambios.
Ramas (branch): Son líneas de desarrollo paralelas que existen independientemente unas de otras. En los sistemas Git, los desarrolladores escriben código en ramas separadas, evitando así conflictos entre los cambios realizados.
Cuando un desarrollador backend, frontend u otro especialista termina de trabajar en el código de su rama, crea una solicitud de fusión (merge request) con la rama principal (master o main), donde se encuentra el código principal del programa, para transferir sus cambios.
La fusión es el proceso de combinar dos o más ramas en una sola.
Otros desarrolladores pueden evaluar los cambios y comentarlos. Después de las pruebas y la aprobación del superior o líder de equipo, se ejecuta la solicitud de fusión. En GitLab, puedes configurar el proceso de desarrollo para que los cambios se integren automáticamente en la rama principal si se cumplen ciertas condiciones, por ejemplo, después de superar las pruebas correctamente.
¿Para qué sirve GitLab?
GitLab ayuda a los equipos a desarrollar software colaborativamente: planificar procesos, probar código, compilar proyectos y publicar versiones.
Planificación de la desarrollo:
En GitLab, puedes crear tareas y agruparlas en proyectos, asignando responsables y plazos. En este aspecto, se parece a Jira, «Bitrix24» y otras aplicaciones para gestores.
Con su ayuda, el líder de equipo o el desarrollador senior pueden verificar la velocidad a la que el equipo realiza las tareas. Esto es útil para planificar sprints, cuando se necesita determinar el tiempo necesario para desarrollar una determinada función en la aplicación.
Escritura de código
Los participantes pueden colaborar en un proyecto en GitLab gracias al sistema de repositorios y ramas. Los desarrolladores escriben código en paralelo sin preocuparse por la compatibilidad de las partes nuevas o modificadas del programa.
Después de escribir o actualizar una parte del código, el desarrollador envía una solicitud de fusión de su rama al repositorio principal del proyecto. Un desarrollador senior o el líder de equipo lo revisan y aceptan la solicitud de fusión o envían el código para su revisión, dejando comentarios.
Prueba de código
GitLab automatiza los procesos de prueba al realizar cualquier cambio en el código. Por ejemplo, cuando se añade una nueva función o se modifica una antigua, GitLab la envía al repositorio central, donde se ejecutan automáticamente las pruebas.
Normalmente, este proceso funciona de la siguiente manera:
- El sistema verifica el código en busca de errores de compilación.
- A continuación, se ejecutan las pruebas escritas por los desarrolladores: pruebas modulares para verificar partes individuales del código, pruebas de integración que verifican el funcionamiento del nuevo código con el antiguo, y otras. El objetivo de todas las pruebas es asegurarse de que los nuevos cambios no rompen la funcionalidad existente de la aplicación.
- El desarrollador recibe un informe sobre las pruebas superadas y, si es necesario, revisa el código. Cuando se realizan todos los cambios necesarios, GitLab los integra en el repositorio principal del proyecto.
Compilación del proyecto
GitLab tiene repositorios de contenedores: paquetes ejecutables autónomos que incluyen todo lo necesario para que la aplicación funcione: bibliotecas, archivos de configuración, etc. Gracias a esto, se ejecutan en cualquier sistema, independientemente de su entorno. Los contenedores se crean, implementan y gestionan en la plataforma Docker.
En el repositorio del proyecto, puedes almacenar diferentes versiones de los contenedores para tu aplicación y configurar su actualización automática cuando cambie el código.
Versión de la aplicación
Las herramientas integradas de integración continua (CI) e implementación continua (CD) automatizan todo el proceso, desde la compilación del código hasta la carga de la aplicación o su nueva versión en el entorno de ejecución: en un servidor web, un dispositivo móvil u otra plataforma.
El desarrollador puede definir el tipo de entorno, por ejemplo, seleccionando un servidor de producción, e implementar automáticamente la aplicación en él después de las pruebas.
GitLab incluye varias opciones de implementación listas para usar. Se seleccionan en función de las tareas:
- Implementación azul-verde (blue-green deployment): Se utilizan dos entornos: uno de producción («azul») y otro de prueba («verde») para verificar el funcionamiento de la aplicación después de realizar los cambios. Cuando se verifica la nueva versión del código, se convierte en «verde».
- Implementación canaria (canary deployment): Primero, la nueva versión de la aplicación se implementa para un pequeño grupo de usuarios. De esta manera, se prueba en condiciones reales con una audiencia limitada y luego se convierte en la principal para todos.
- Implementación progresiva (rolling deployment): La aplicación se sustituye por una nueva versión sin interrumpir su funcionamiento. Si el equipo tiene varios servidores, actualiza el código en uno de ellos, luego en el siguiente, y así sucesivamente.
Estas estrategias reducen los riesgos que surgen al instalar nuevas versiones de la aplicación, por ejemplo, los relacionados con su incompatibilidad con dispositivos de usuario específicos. En el caso de una implementación azul-verde o canaria, puedes volver rápidamente a la versión estable de la aplicación.
Y esto no es todo. GitLab tiene plantillas CI/CD listas para usar. Son conjuntos de instrucciones o configuraciones para la compilación, prueba e implementación automatizadas del código. En lugar de crear una configuración desde cero cada vez, los desarrolladores pueden utilizar una plantilla lista para usar y configurar sus parámetros para su aplicación.
Monitoreo
GitLab recopila varias métricas del proceso CI/CD y el rendimiento de la aplicación: tiempo de compilación, porcentaje de pruebas exitosas, número de errores detectados y otros. Si no son suficientes, puedes integrar herramientas de monitoreo externas, como Prometheus o Grafana.
¿Cómo GitLab facilita el desarrollo en equipo?
GitLab no solo proporciona a los desarrolladores un repositorio de código con un sistema de control de versiones Git integrado, sino que también facilita el trabajo con funciones adicionales.
- Configuraciones flexibles de acceso a los repositorios de código: Un proyecto puede tener varias decenas de especialistas. GitLab permite configurar sus derechos de acceso a los repositorios: determinar quién puede leer, editar o descargar el código. Por ejemplo, los usuarios con acceso de invitado al repositorio pueden verlo, pero no realizar cambios. Esto aumenta la seguridad del proyecto y facilita la gestión del desarrollo.
Puedes configurar el acceso a ramas individuales y crear grupos de usuarios que participan en varios proyectos simultáneamente.
- Herramientas de gestión de CI/CD: La integración continua (CI) y la implementación continua (CD) son un enfoque en el desarrollo de software que automatiza los procesos de compilación, prueba e implementación de la aplicación.
La integración continua (CI) es una práctica en la que el código se fusiona regularmente, a menudo varias veces al día, en un repositorio común con una compilación automatizada del proyecto. Gracias a esto, puedes identificar rápidamente errores en el código y problemas de compatibilidad con la base de código existente.
La implementación continua (CD) es una continuación de la CI. Cuando el código supera las pruebas después de la fusión, el sistema implementa automáticamente los cambios en el entorno de producción. Esto significa que la nueva versión de la aplicación estará inmediatamente disponible para los clientes y usuarios.
- Base de conocimientos: GitLab tiene herramientas para crear páginas wiki con la documentación del proyecto. Admite varios formatos: texto, imágenes, videos y tablas.
Gracias a la base de conocimientos sobre el proyecto, los nuevos empleados pueden entender rápidamente cómo configurar el entorno de trabajo, qué versiones de las bibliotecas utilizar, etc.
- Proyectos y tareas: GitLab implementa un sistema de gestión del desarrollo. En él, puedes crear tareas para los miembros del equipo, seleccionando a los responsables y estableciendo plazos, y describiendo los resultados del trabajo.
- Integración con otras herramientas: GitLab admite la integración con plataformas y servicios populares utilizados en el desarrollo: Docker, Kubernetes, Jira, Slack y otros.
En general, GitLab es un lugar centralizado no solo para almacenar código, sino también para gestionar proyectos, mantener una base de conocimientos y automatizar los procesos de desarrollo.
¿En qué se diferencia GitLab de GitHub?
GitLab y GitHub son dos servicios web populares para alojar proyectos utilizando el sistema de control de versiones Git. Exteriormente son muy similares, pero existen algunas diferencias:
- GitHub es un servicio en la nube que pertenece a Microsoft, donde puedes almacenar y gestionar tus proyectos. A diferencia de él, GitLab se puede implementar en tu propio servidor.
- En GitHub, para trabajar con CI/CD, deberás utilizar una herramienta adicional: GitHub Actions. GitLab es una solución completamente integrada con herramientas CI/CD integradas.
- En la versión gratuita de GitHub, en los repositorios privados se utilizan dos niveles de acceso: propietario (owner) y colaborador (collaborator). GitLab no tiene estas limitaciones. El número de usuarios con diferentes niveles de acceso no está limitado.
En general, tanto GitLab como GitHub ofrecen un conjunto similar de funciones. La diferencia radica en que en GitHub algunas de ellas están disponibles a través de integraciones con aplicaciones de terceros, mientras que en GitLab están disponibles de forma predeterminada.
Cómo trabajar con GitLab
Trabajar con GitLab consta de varios pasos: crear una cuenta y un repositorio, añadir usuarios y ramas, cargar archivos del proyecto, realizar cambios en el código y fusionar ramas.
Cómo crear una cuenta y un proyecto
Si aún no tienes una cuenta en GitLab, comienza creando una cuenta en el sitio web oficial y completa el formulario de registro:
- Nombre de usuario: un nombre de usuario único.
- Correo electrónico: correo electrónico personal o profesional.
- Contraseña: una contraseña segura.
Después del registro, confirma tu cuenta a través del enlace del correo electrónico enviado a tu correo electrónico. Ahora tu cuenta en GitLab está creada y lista para usar.
Cómo crear un repositorio
En la página principal o en el panel lateral, haz clic en el icono «+» y selecciona «New project/repository«:

Puedes crear un proyecto en GitLab de varias maneras: desde cero, basándote en una plantilla, importándolo de otro servicio o computadora o utilizando CI/CD. Comenzaremos con un proyecto vacío, así que selecciona «Crear proyecto en blanco» y completa la información:
- Project name: el nombre del proyecto.
- Project URL se determina automáticamente en función del Project name.
- Visibility Level: Público (para todos) o Privado (solo para ti y los colaboradores seleccionados del proyecto).
- Initialize repository with a README: creará automáticamente un README en tu repositorio. Este es un archivo de texto que contiene información sobre el proyecto: descripción de sus tareas, principios de funcionamiento, instrucciones de instalación y configuración.

Después de completar los datos, haz clic en el botón «Create project«. Ahora el repositorio está listo para usarse:

Cómo añadir claves SSH
Las claves SSH se utilizan para autenticar tu computadora en un servidor remoto, en este caso, en el servidor GitLab. Gracias a esto, puedes confirmar tu identidad sin introducir una contraseña.
Para crear una clave, abre un terminal o una línea de comandos e introduce el comando para generar claves ssh-keygen
. Si deseas generarlas en una carpeta específica, introduce la ruta a ella.

Al generar la clave, puedes especificar una contraseña, pero no es obligatorio.
Ahora, en la carpeta especificada, aparecerán dos archivos con claves: una privada y una pública. Para crear claves en GitLab, necesitas la segunda: un archivo con la extensión .pub
. Ábrelo en un editor de texto y copia el contenido al portapapeles.
Ve a tu repositorio en el sitio web de GitLab, haz clic en el botón «Add SSH key» (o si ya tienes una, ve aquí, en Add new key):

Pega la clave copiada en el campo «Key» y dale un nombre significativo, por ejemplo, que coincida con el nombre del repositorio.
Cómo cargar archivos
Puedes cargar los archivos existentes del proyecto en tu repositorio o crear nuevos. Para ello, haz clic en «+» y selecciona «New file» o «Upload file».

Ahora puedes editar el código directamente en la interfaz web. Para ello, haz clic en el botón «Edit«:


Puedes clonar el repositorio en tu computadora y trabajar en un editor o IDE cómodo. Más detalles sobre esto se describirán más adelante.
Cómo trabajar con ramas
Cada rama representa una dirección de trabajo independiente. En ellas, los desarrolladores crean nuevas funciones, corrigen errores, prueban cambios y realizan experimentos que no afectan al proyecto principal ni a otras ramas. Después de terminar el trabajo en una rama, se fusiona con la rama principal.
De forma predeterminada, un nuevo repositorio tiene una rama: main. Normalmente, no se trabaja directamente con el código en main, sino que se realizan cambios mediante la fusión con otras ramas.
Para crear una nueva rama, haz clic en «+» y selecciona «New branch» en el menú.

La nueva rama contiene copias de todos los archivos del proyecto. Ahora puedes realizar cambios en el código, añadir nuevas funciones al software, corregir errores, y esto no afectará al código principal.
Fusión de ramas
Para transferir el nuevo código a la rama principal, haz clic en el botón «Commit changes» (Confirmar cambios) en la parte inferior de la página.

Y luego haz clic en el botón «Create merge request«, creando una solicitud de fusión.

En la página que se abre, introduce el nombre de la fusión, descríbela, indicando qué has cambiado, y selecciona a los responsables de la verificación. Ahora haz clic en el botón «Crear solicitud de fusión» en la parte inferior de la página.

Para aceptar los cambios en la siguiente página, haz clic en los botones «Approve» y «Merge»:

En la práctica, es probable que otra persona, por ejemplo, tu líder de equipo, sea quien apruebe y realice la fusión.
Cuando se realiza la fusión de las ramas, la información sobre ella aparecerá en la descripción:
Cómo añadir usuarios a proyectos
Puedes añadir participantes a tu proyecto con diferentes niveles de acceso. Para ello, selecciona «Members» en el panel izquierdo.

En la nueva ventana, haz clic en «Invite member«, introduce el nombre de usuario o la dirección de correo electrónico del usuario, selecciona su rol y haz clic en el botón «Invite«.
Cómo clonar un repositorio y trabajar con commits
La mayor parte del tiempo escribirás código localmente, en tu editor o IDE favorito, y no en el panel de GitLab. Para ello, deberás clonar el repositorio; después de terminar el trabajo, también podrás fusionarlo con el repositorio principal.
Cómo trabajar localmente:
- Copia la URL del repositorio. En tu computadora, abre una línea de comandos o un terminal y ejecuta el comando
git clone <URL del repositorio>
para descargar el repositorio a tu máquina local. - En el clon creado del repositorio, realiza cambios en los archivos del proyecto o añade nuevos.
- Después de terminar de trabajar con el código, abre una línea de comandos o un terminal en la carpeta de tu proyecto. Ejecuta el comando
git add .
para añadir todos los cambios al área de preparación. El área de preparación (staging area) en Git es un lugar donde se recopilan los cambios antes del commit. Si deseas añadir solo archivos específicos, utiliza el comandogit add <nombre_del_archivo>
. - Para ver qué archivos están en el área de preparación y qué cambios están listos para el commit, utiliza el comando
git status
. - Para crear un commit, escribe el comando
git commit -m "Tu comentario sobre los cambios"
. Entre comillas, puedes escribir un comentario corto, por ejemplo: «Se han añadido nuevas funciones» o «Se han corregido errores». - Para enviar el commit al servidor, utiliza el comando
git push
.
Cómo eliminar un proyecto
Un administrador del proyecto o un usuario con los derechos de acceso correspondientes puede eliminar un proyecto en GitLab.
Inicia sesión en GitLab y ve al proyecto que deseas eliminar. Abre la sección «Settings» y selecciona «General». Desplázate hacia abajo hasta la sección «Advanced» y ábrela. En la parte inferior, verás el botón «Delete project». Haz clic en él y confirma que realmente deseas eliminar el proyecto.

Listo. El proyecto se ha eliminado de forma irreversible.
En resumen
Repasemos lo que hemos aprendido hoy:
- GitLab es una herramienta cómoda y útil para equipos que se dedican al desarrollo de software. Permite trabajar en equipo en el código y guardar sus versiones intermedias, a las que se puede acceder si es necesario.
- Los desarrolladores que utilizan GitLab escriben código en ramas o clones de repositorios separados en sus computadoras. Después de añadir, modificar o eliminar código, crean un commit que contiene todos los cambios que se integrarán en el repositorio principal. Un superior o líder de equipo los revisa y los acepta o los envía para su revisión.
- GitLab incluye herramientas integradas de integración continua (CI) e implementación continua (CD), que automatizan los procesos de prueba, compilación de la aplicación e implementación.
- GitLab se diferencia de GitHub por su herramienta integrada para CI/CD, la posibilidad de implementar el servicio en tu propio servidor y la ausencia de limitaciones en el número de grupos de usuarios con diferentes niveles de acceso.