Servicios Distribuidos (GitLab y GitHub)
120 min
Last updated
Was this helpful?
120 min
Last updated
Was this helpful?
Objetivo:
Configurar Git con servicios distribuidos (Github y Gitlab), creaci贸n de llaves ssh y hacer uso de los comando push y pull de forma correcta
Leer y analizar los recursos listados a continuaci贸n.Se recomienda ver el video indicado por cada enlace.
La creaci贸n de repositorios, commits y ramas son suficientes para las tareas diarias que estar谩s efectuando con Git, sin embargo para poder trabajar de manera colaborativa o mantener una copia de seguridad del repositorio ser谩 necesario configurar Git para trabajarlo de forma remota, que se basa t茅cnicamente en que puedas enviar y recibir informaci贸n de otros equipos.
Los m茅todos m谩s comunes para trabajar de forma remota son el de enviar (push) y recibir (pull).
Configurar Git con un servidor es un proceso bastante sencillo, pero primero es necesario elegir con qu茅 se comunica el servidor.
Git cuenta con cuatro protocolos, Local, , y Git.
El protocolo SSH es el protocolo m谩s habitual y seguro para alojar repositorios Git en Hostings como es el caso de y .
Para hacer uso del protocolo SSH con otros servicios primero debemos (5:53)
El primer paso para crear nuestra clave ser谩 abrir nuestra terminal o git bash e introducir el siguiente comando ssh-keygen
Si es la primera vez que creamos una Clave SSH no ser谩 necesario poner alg煤n nombre (solo debemos oprimir enter hasta el final del proceso), ya que por defecto nos va crear dos claves una privada y una p煤blica (debemos tener cuidado de nunca compartir la llave privada ya que cualquier persona podr铆a tomar control de nuestra computadora), en el caso de contar ya con una clave ssh podemos usar la llave p煤blica existente o crear una nueva con un nombre en especifico, una vez terminado el proceso veremos algo similar a la siguiente pantalla.
Una vez creado nos dirigimos al directorio /.ssh por medio del comando cd /.ssh
y desplegamos el lista de llaves p煤blicas con ls
Una vez creada nuestra cuenta realizamos login y nos dirigimos a la parte superior derecha donde se encuentra nuestro usuario.
Se desplegar谩 un men煤 y seleccionamos la opci贸n de Settings, que nos mostrar谩 lo siguiente:
En el men煤 de lado izquierdo seleccionaremos la opci贸n de SSH Keys.
Una vez realizado el click mostrar谩 lo siguiente:
Abriremos de nuevo nuestra terminal y accedemos nuevamente a la carpeta .ssh por medio de cd .ssh
, desplegamos el lista de claves con ls
y seleccionaremos la clave p煤blica a desplegar con cat [nombre de la clave].pub , en este caso ser铆a cat id_rsa.pub
o cat modulo.pub
, una vez desplegada la clave la copiaremos en nuestro portapapeles.
Regresaremos a la ventana donde tenemos abierto gitlab.com en nuestro navegador y en el apartado donde pide ingresos la ssh que acabamos de copiar la pegaremos, en un apartado inferior nos pide que ingresemos un nombre con el cual identificamos dicha clave (Por defecto nos agrega un nombre, pero podemos cambiarlo), para finalizar el proceso realizamos click en el bot贸n Add Key.
Gitlab mostrar谩 la siguiente pantalla:
Procederemos a crear nuestro repositorio remoto, seleccionando el apartado Projects en el men煤 superior izquierdo, seguido por la opci贸n YourProjects
Realizamos click en el bot贸n New Project ubicado en el lado superior derecho.
Nos mostrar谩 la vista general de nuestro proyecto.
Seleccionaremos el bot贸n de Clone de color azul que se encuentra de lado izquierdo y copiaremos la liga con la leyenda Clone with SSH.
Abrimos nuestra terminal o git bash, e ingresamos a la carpeta donde tenemos nuestro repositorio de git, para conectar nuestro repositorio existente con el repositorio remoto en Gitlab haremos uso del comando git remote add origin [url]; por ejemplo:
git remote add origin git@gitlab.com:jose73/modulo-git.git
Ahora que ya tienes un repositorio remoto Git configurado como punto de trabajo para que los desarrolladores compartan su c贸digo, y adem谩s ya conoces los comandos b谩sicos de Git para usar en local, ver谩s c贸mo se puede utilizar alguno de los flujos de trabajo distribuido que Git permite.
Usaremos el comando git pull origin master
(El uso de origin master solo es necesario la primera ocasi贸n que obtenemos datos del repositorio remoto).
Como puede observar obtuvimos una pantalla con una clase de error, ya que git nos est谩 indicando que existe informaci贸n en el repositorio remoto que en el repositorio local no existe, esto se debe que cuando creamos el repositorio en gitlab pedimos crear谩 un archivo README, en el caso que el repositorio remoto estuviera limpio o el local el comando git pull se ejecutar铆a sin dificultad alguna, en este caso para lograr realizar el pull usaremos el comando:
git pull origin master --allow-unrelated-histories
Nos mostrar谩 una ventan de vim y pedir谩 que agreguemos un mensaje para realizar el merge, podemos omitir el mensaje con la tecla esc + :q.
Se desplegar谩 un mensaje donde podremos observar que se agrego el archivo README en nuestro directorio local, con el comando ls
podremos visualizar el estado actual de nuestros archivos.
Usaremos el comando git log --oneline --decorate --graph --all
para visualizar de manera gr谩fica la fusi贸n de ramas realizada.
Como buena pr谩ctica, realizaremos el comando git pull
, antes de actualizar el repositorio remoto.
Una vez que obtuvimos como resultado el mensaje Already up to date, podemos proceder a usar el comando git push.
Github es el mayor proveedor de alojamiento de repositorios Git, tambi茅n es conocido como el Facebook de los desarrolladores, recientemente fue comprado por Microsoft.
Un gran porcentaje de los repositorios Git se almacenan en GitHub, y muchos proyectos de c贸digo abierto lo utilizan para hospedar su Git, realizar su seguimiento de fallos, hacer revisiones de c贸digo y otras cosas. Por tanto, aunque no sea parte directa del proyecto de c贸digo abierto de Git, es muy probable que durante tu uso profesional de Git necesites interactuar con GitHub en alg煤n momento.
Creaci贸n y configuraci贸n de la cuenta
Una vez creada nuestra cuenta debemos configurar nuestra clave ssh, nos dirigiremos a nuestro avatar ubicado en la parte superior derecha y una vez desplegado el men煤 seleccionaremos la opci贸n de settings.
En el men煤 de lado izquierdo seleccionaremos la opci贸n de SSH and GPG Keys.
Abrimos nuestra terminal o git bash y entramos al directorio .ssh con el comando cd .ssh
, desplegamos nuestras llaves existentes con el comando ls
y mostraremos en pantalla nuestra llave p煤blica con el comando cat id_rsa.pub
, procederemos a copiar el c贸digo desplegado a nuestro portapapeles.
De regreso a nuestro navegador en la pesta帽a de configuraci贸n de ssh de Github, realizamos click sobre el bot贸n verde New SSH Key.
En la ventana desplegada pegaremos en el apartado de Key la clave SSH de nuestra terminal y en Title pondremos un nombre con el cual identificamos la computadora de la cual proviene dicha clave, finalizamos con el bot贸n Add SSH Key.
Procederemos a crear un repositorio remoto con el bot贸n + que se encuentra en la parte superior derecha y seleccionamos la opci贸n New repository.
Asignaremos un nombre a nuestro repositorio, a diferencia de Gitlab para poder hacer uso de repositorios privados en Github se debe pagar una subscripci贸n por lo que usaremos la casilla de p煤blico, no seleccionaremos la opci贸n de crear el archivo Readme y finalizamos con el bot贸n verde Create repository.
Nos desplegar谩 algunas instrucciones, la primera de ella nos indica que en el caso de ser un nuevo repositorio local deberemos seguir dichas instrucciones para realizar nuestro primer push y en el caso de ya contar con un repositorio existente solo debemos agregar con git remote la direcci贸n indicada y realizar push con el comando git push -u origin master
Nota: Para evitar conflictos con nuestro repositorio que se encuentra trabajando con Gitlab deberemos crear una copia de nuestro repositorio completo, ingresamos a la nueva copia del repositorio y removemos el acceso remoto con
git remote rm origin
.
Procederemos a realizar las instrucciones de Github en nuestra terminal:
En este caso no fue necesario realizar un Pull antes del push debido a que el repositorio remoto se encontraba vac铆o, pero no debemos olvidar que cuando trabajemos de forma colaborativa siempre debemos realizar un pull antes de realizar cualquier push.
El uso de licencia es importante ya que especifica que nuestro contenido puede ser o no reutilizado y de qu茅 manera. Para el software de GNU usamos 煤nicamente licencias que son compatibles con la GPL de GNU. La documentaci贸n del software libre debe ser documentaci贸n libre, para que se pueda redistribuir y mejorar al igual que el software que describe.
Una vez agregada a nuestro directorio usaremos el comando git add -A
seguido por el comando git commit -am "Licencia GNU 3.0"
y realizaremos un push al repositorio remoto con git push
.
Si ingresamos al repositorio en nuestra cuenta de Github y abrimos el archivo LICENSE, Github nos proporciona un resumen de lo que dicha licencia nos permite hacer con el c贸digo publicado.
Las llaves p煤blicas son las que contienen la terminaci贸n .pub y son las 煤nicas que debemos utilizar para configurar nuestros servidores remotos, a continuaci贸n deberemos crear una cuenta en un hosting (Tambi茅n podemos crear ), en este caso vamos a crear una cuenta en Gitlab y otra en Github.
Gitlab es un servicio web de control de versiones basado en Git, a diferencia de Github es un sistema de .
Lo primero que debes realizar es crear una cuenta en , podemos registrarnos con nuestro correo o con alguna red social como es el caso de Twitter, Github o nuestra cuenta de Gmail.
Nos desplegar谩 una pantalla donde podremos introducir el nombre del proyecto, una descripci贸n y seleccionar si queremos que nuestro repositorio sea p煤blico (cualquiera con la direcci贸n url puede ver nuestro proyecto) o privado (esta opci贸n es de paga en gitlab.com pero nos permite gestionar qui茅n tiene acceso al proyecto. en el caso de montar nuestro propio servidor o usar la version de gitlab en nuestro propio servidor esta opci贸n no necesita pago), seleccionaremos la casilla que indica que queremos inicializar el del proyecto, terminaremos el proceso con el bot贸n verde Create Project.
Uno de los principales comando que utilizaras en el manejo de repositorios distribuidos es el comando (Video tutorial 4:26) esta instrucci贸n lo que nos permite realizar es obtener los cambios realizados en el repositorio remoto, tenemos que tener en cuenta que cuando trabajamos de forma distribuida en muchas ocasiones estaremos trabajando sobre el mismo archivo que otros programadores por lo que siempre ser谩 importante descargar dichos cambios para evitar sobreescribir en ellos. Realizaremos git pull de nuestro repositorio en gitlab ubic谩ndonos en el directorio de nuestro repositorio local.
Para actualizar el repositorio remoto con los archivos que tengamos en nuestro repositorio local haremos uso del comando (video tutorial 5:15), como se mencion贸 antes cuando trabajemos en repositorios colaborativos debemos tener cuidado de siempre primero descarga la versi贸n m谩s reciente del repositorio remoto con git pull, ya que si no efectuamos este paso podr铆amos sobre escribir los cambios que alguien m谩s realiz贸.
Si entramos a nuestra cuenta de podremos observar que los datos fueron cargados con 茅xito.
Al igual que Gitlab es necesario crear una cuenta en , donde debemos elegir nuestro nombre de usuario, proporcionar un correo y una contrase帽a.
A continuaci贸n realizaremos un push despu茅s de realizar un nuevo commit, nos dirigiremos siguiente link y con click derecho sobre el texto descargamos la licencia GPL 3.0, donde lo guardaremos con el t铆tulo de LICENSE dentro del directorio de nuestro repositorio.