Hola a todos:
En los post anteriores hemos aprendido a utilizar Git como repositorio local y también GitHub como repositorio remoto.
Tras la compra de GitHub por parte de Microsoft hubo desarrolladores que recelosos del papel que pueda jugar Microsoft con el futuro de GitHub decidieron migrar sus repositorios a GitLab.
Hoy vamos a iniciarnos en esta plataforma:
Al igual que GitHub, Gitlab es un servicio web de control de versiones y desarrollo de software colaborativo basado en Git.
GitLab nació en 2011 como un proyecto dentro de GitHub convirtiéndose en una alternativa a este.
Fue escrito por los programadores ucranianos Dmitriy Zaporozhets y Valery Sizov en el lenguaje de programación Ruby
GitLab tiene la ventaja que permite tener repositorios privados en la versión gratuita.
Lo primero que tenemos que hacer para utilizar gitLab es crearnos una cuenta, para ello vamos a la página de GitLab: https://gitlab.com y pinchamos en Sign In/Register:
Seleccionamos la pestaña Register y rellenamos los campos del formulario antes de pulsar el botón Register:
Una vez enviado el formulario te llegará un email a la cuenta de correo que has indicado para que confirmes tu cuenta pinchando en el enlace.
Una vez confirmada tu cuenta ya podemos empezar.
Al logearte en GitLab la primera vez veremos una pantalla como esta:
Podemos crear un proyecto, explorar proyectos publicos al igual que en GitHub y crear un grupo para gestionar un proyecto colaborativo.
Vamos a crear un nuevo proyecto, por lo tanto seleccionamos Create a proyect:
Al proyecto le vamos a llamar holamundo para no perder las buenas costumbres.
Podemos poner una descripción del proyecto si queremos y seleccionamos el tipo de repositorio que queramos: Private(privado), Internal (interno) o Public (público).
Si queremos que sea un proyecto que solo nosotros podamos ver lo dejamos en Private.
Por último accionamos el botón Create project y ya tendremos nuestro repositorio creado.
Si nos desplazamos por la página hacia abajo veremos que al igual que en GitHub nos muestra los comandos que tenemos que ejecutar para sincronizar este repositorio con un proyecto en nuestro ordenador.
Primero tenemos que configurar nuestro usuario y nuestro email con git config si no lo hemos hecho.
Como nosotros ya tenemos nuestro repositorio holamundo en nuestro ordenador ya hemos configurado el usuario.
Tenemos tres posibilidades:
Crear un nuevo repositorio vacío, utilizar una carpeta donde ya tengamos un proyecto pero que no esté gestionado todavía por git, o utilizar un repositorio local que ya esté gestionado por git.
En este caso ya tenemos nuestro proyecto holamundo que ya está siendo gestionado por Git y además lo tenemos asociado remotamente a GitHub.
Tenemos que seguir por lo tanto los pasos que indica en “Existing Git repository“.
Lo primero que tenemos que hacer es situarnos en la consola de comandos dentro de la carpeta de nuestro proyecto.
Ahora renombramos el origin y lo llamamos old-origin, recordad que en origin ahora estaba definido la url de nuestro proyecto en GirHub:
git remote rename origin old-origin
Ahora tenemos que indicar que el origin va a ser la dirección de nuestro proyecto en Gitlab:
git remote add origin https://gitlab.com/tu_usuario/holamundo.git
Recuerda poner la url que indique en tu caso, con tu usuario.
Ahora nos indica que realicemos un push -u origin –all:
git push -u origin --all
Al ejecutar este comando nos pedirá usuario y contraseña. Debemos poner nuestro usuario y contraseña de GitLab:
Una vez logeados comenzara a subir los archivos de nuestro repositorio.
Por último nos indica que introduzcamos el siguiente comando:
git push -u origin --tags
Con esto ya tendremos todo sincronizado, si refrescamos la página de nuestro repositorio en GitLab vemos que aparecen todos los archivos de nuestro proyecto holamundo:
El uso que podemos hacer de GitLab es muy similar al de GitHub.
Si queremos clonar un repositorio de Gitlab en nuestro ordenador solo tenemos que copiar la url de nuestro proyecto y utilizar el comando git clone como vimos en la parte de GitHub por ejemplo.
Vamos ha hacer una prueba:
Primero vamos a crear una carpeta en nuestro equipo donde clonaremos el repositorio, la llamaremos por ejemplo HolaMundoGitLab:
Ahora copiamos la url de nuestro repositorio en GitLab:
Ahora desde el terminal nos situamos en la carpeta que acabamos de crear y al igual que haríamos con un repositorio de GitHub utilizamos el siguiente comando:
git clone https://gitlab.com/reviblog/holamundo.git
Al hacer esto dentro de nuestra carpeta se habrá creado la carpeta holamundo con el contenido de nuestro repositorio.
Fork
Al igual que GitHub, GitLab nos permite hacer un fork de un repositorio, como vimos en GitHub, un fork es una copia exacta de un repositorio para poder hacer modificaciones del repositorio original sin afectar a este.
En GitLab tambien puedes encontrar un repositorio público de un proyecto que te resulte interesante y realizar cambios en este si afectar al original.
Cuando accedes a la página principal de GitLab te da la opción de explorar repositorios públicos:
Seleccionamos un proyecto publico que nos interese y para tener una copia en nustra cuenta de GitLab solo tenemos que pulsar el botón fork:
Nos pedirá que seleccionemos el namespace para hacer un fork del proyecto:
Seleccionamos el nuestro y después de unos segundos o algo más de tiempo dependiendo de la envergadura del proyecto tendremos una copia exacta que podemos modificar a nuestro antojo:
Al igual que en GitHub podemos hacer un pull request para solicitar la integración de los cambios que hayamos realizado en el proyecto original, en GiLab debemos solicitar un Merge request.
En el menú lateral izquierdo encontraremos la opción para realizar un Merge Request:
Después debemos seleccionar la rama donde queremos hacer el merge:
Después pulsamos en el botón “Compare branches and continue” y se mostrará un formulario donde podemos describir el merge que vamos a realizar.
Una vez rellenado el formulario pulsamos en el botón “Submit merge request” para enviar la petición.
Wiki
Gitlab nos provee también de una Wiki donde podemos documentar nuestro proyecto y añadir toda la información que consideremos relevante al respecto.
Desde el menú lateral izquierdo podemos acceder a la Wiki y crear nuestra primera página:
Añadir miembros al proyecto
Podemos invitar a otros usuarios a participar en nuestro proyecto, por ejemplo si somos un equipo de varias personas trabajando en un proyecto se puede autorizar a diferentes usuarios para que puedan acceder a el.
Para ello en el menú lateral de la izquierda en la parte de abajo selecionamos Settings -> Members:
Al empezar a escribir el nombre del usuario en el campo Select members to invite aparecerán sugerencias de usuarios que coincidan con lo que estamos escribiendo hasta que veamos en usuario que nos interesa.
Después en Choose a role permission seleccionamos el tipo de rol que va a tener el usuario, pudiendo elegir entre Guest, Reporter, Developer y Maintainer.
Dependiendo del tipo de rol el usuario tendrá diferentes permisos respecto al repositorio:
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
Create new issue | ✓ | ✓ | ✓ | ✓ | ✓ |
Create confidential issue | ✓ | ✓ | ✓ | ✓ | ✓ |
View confidential issues | (✓) | ✓ | ✓ | ✓ | ✓ |
Leave comments | ✓ | ✓ | ✓ | ✓ | ✓ |
See related issues | ✓ | ✓ | ✓ | ✓ | ✓ |
See a list of jobs | ✓ | ✓ | ✓ | ✓ | ✓ |
See a job log | ✓ | ✓ | ✓ | ✓ | ✓ |
Download and browse job artifacts | ✓ | ✓ | ✓ | ✓ | ✓ |
View wiki pages | ✓ | ✓ | ✓ | ✓ | ✓ |
Pull project code | ✓ | ✓ | ✓ | ✓ | |
Download project | ✓ | ✓ | ✓ | ✓ | |
Assign issues | ✓ | ✓ | ✓ | ✓ | |
Assign merge requests | ✓ | ✓ | ✓ | ||
Label issues and merge requests | ✓ | ✓ | ✓ | ✓ | |
Create code snippets | ✓ | ✓ | ✓ | ✓ | |
Manage issue tracker | ✓ | ✓ | ✓ | ✓ | |
Manage labels | ✓ | ✓ | ✓ | ✓ | |
See a commit status | ✓ | ✓ | ✓ | ✓ | |
See a container registry | ✓ | ✓ | ✓ | ✓ | |
See environments | ✓ | ✓ | ✓ | ✓ | |
See a list of merge requests | ✓ | ✓ | ✓ | ✓ | |
Manage related issues [STARTER] | ✓ | ✓ | ✓ | ✓ | |
Lock issue discussions | ✓ | ✓ | ✓ | ✓ | |
Lock merge request discussions | ✓ | ✓ | ✓ | ||
Create new environments | ✓ | ✓ | ✓ | ||
Stop environments | ✓ | ✓ | ✓ | ||
Manage/Accept merge requests | ✓ | ✓ | ✓ | ||
Create new merge request | ✓ | ✓ | ✓ | ||
Create new branches | ✓ | ✓ | ✓ | ||
Push to non-protected branches | ✓ | ✓ | ✓ | ||
Force push to non-protected branches | ✓ | ✓ | ✓ | ||
Remove non-protected branches | ✓ | ✓ | ✓ | ||
Add tags | ✓ | ✓ | ✓ | ||
Write a wiki | ✓ | ✓ | ✓ | ||
Cancel and retry jobs | ✓ | ✓ | ✓ | ||
Create or update commit status | ✓ | ✓ | ✓ | ||
Update a container registry | ✓ | ✓ | ✓ | ||
Remove a container registry image | ✓ | ✓ | ✓ | ||
Create/edit/delete project milestones | ✓ | ✓ | ✓ | ||
Use environment terminals | ✓ | ✓ | |||
Add new team members | ✓ | ✓ | |||
Push to protected branches | ✓ | ✓ | |||
Enable/disable branch protection | ✓ | ✓ | |||
Turn on/off protected branch push for devs | ✓ | ✓ | |||
Enable/disable tag protections | ✓ | ✓ | |||
Rewrite/remove Git tags | ✓ | ✓ | |||
Edit project | ✓ | ✓ | |||
Add deploy keys to project | ✓ | ✓ | |||
Configure project hooks | ✓ | ✓ | |||
Manage Runners | ✓ | ✓ | |||
Manage job triggers | ✓ | ✓ | |||
Manage variables | ✓ | ✓ | |||
Manage GitLab Pages | ✓ | ✓ | |||
Manage GitLab Pages domains and certificates | ✓ | ✓ | |||
Remove GitLab Pages | ✓ | ||||
Manage clusters | ✓ | ✓ | |||
Edit comments (posted by any user) | ✓ | ✓ | |||
Switch visibility level | ✓ | ||||
Transfer project to another namespace | ✓ | ||||
Remove project | ✓ | ||||
Delete issues | ✓ | ||||
Remove pages | ✓ | ||||
Force push to protected branches | |||||
Remove protected branches | |||||
View project Audit Events | ✓ | ✓ |
Esta tabla esta sacada de la documentación oficial de gitlab, para saber más sobre los permisos de usuario puedes visitar el siguiente link: https://gitlab.com/help/user/permissions
Eliminar un repositorio
Si queremos eliminar un repositorio debemos acceder en el menú lateral izquierdo y seleccionar Settings – General y en General project pulsar el botón Expand
En General project nos desplazamos hasta el final de la página y en Advanced pulsamos el botón Expand. Nos desplazamos una vez más hasta el final de la página para encontrar el botón Remove project.
Al pulsar el botón Remove project nos pide introducir el nombre del proyecto para confirmar la eliminación.
Conclusión:
A lo largo de este tutorial hemos aprendido a utilizar Git para crear nuestros repositorios locales y llevar un control de versiones a través de esta potente herramienta. También hemos visto como trabajar con repositorios remotos con una introducción a dos de las plataformas basadas en Git mas utilizadas, GitHub y GitLab.
Espero que os sea de utilidad.
En el siguiente enlace tienes el índice para acceder al resto de entradas de este tutorial:
Indice Tutorial Git >>
- Tutorial de Git - Aprende Git y GitHub/GitLab de manera fácil, rápida y sencilla - Parte 1
- Tutorial de Git - Aprende Git y GitHub/GitLab de manera fácil, rápida y sencilla - Parte 2
- Tutorial de Git - Aprende Git y GitHub/GitLab de manera fácil, rápida y sencilla - Parte 3
- Tutorial de Git - Aprende Git y GitHub/GitLab de manera fácil, rápida y sencilla - Parte 4
- Tutorial de Git - Aprende Git y GitHub/GitLab de manera fácil, rápida y sencilla - Parte 5
- Tutorial de Git - Aprende Git y GitHub/GitLab de manera fácil, rápida y sencilla - Parte 6