GIT en el mundo real

Integración con GitHub Más videos

Descripción del tema

Hasta este momento ya sabemos como versionar nuestra aplicación usando GIT, el único inconveniente podría ser que hemos estado trabajando de manera local y todos nuestros cambios únicamente existen en nuestra propia máquina.

En temas anteriores hemos aprendido que GIT no tiene un servidor centralizado, sino que todo esta en local. Ahora bien, podemos crear una copia exacta de nuestro repositorio y ponerla en algún servidor remoto, GIT nos permitirá sincronizarlos de una manera sencilla, así tendremos dos repositorios y si llegáramos a perder el que tenemos en local podríamos clonar el que tenemos en la otra máquina remota.

De la misma manera, si por alguna razón perdemos el repositorio que tenemos en el servidor remoto siempre podemos clonar nuestro repositorio local y ponerlo de nuevo el algún otro servidor remoto.

GitHub

Hoy en día GitHub es el proveedor de hosting más popular para proyectos utilizando GIT como control de versiones. GitHub nos permite publicar nuestro código fuente públicamente, pero también podemos crear repositorios privados. GitHub nos proporciona una serie de herramientas que podemos usar para facilitar el desarrollo y el trabajo colaborativo.

Vamos a ver como integrar GitHub al actual proyecto sobre el que venimos trabajando, por ahora sólo vamos a configurar las llaves parar poder conectarnos via SSH a los servidores de GitHub para poder enviar y recibir código de manera segura.

Los pasos son los siguientes
  1. Primeramente es necesario sacar una cuenta en GitHub.
  2. Verificar si tenemos llaves existentes en nuestro sistema
  3. Generar las llaves para nuestra máquina
  4. Agregar la llave pública a GitHub
  5. Probar que funcione

Verificar si ya tenemos llaves SSH

Si estas en windows necesitas ejecutar los siguientes comandos en el GitBash, si estas en Mac o Linux simplemente usamos la terminal de toda la vida.

Primero necesitamos verificar si ya tenemos algunas llaves existentes, si estas en windows seguramente no las tendrás, si estas en Mac o Linux es muy probable que ya existan algunas llaves.

$ cd ~/.ssh
$ ls
# Lists the files in your .ssh directory

Si no hay absolutamente nada es necesario generar unas, si por el contrario ya existe el archivo id_rsa.pub o id_dsa.pub entonces podemos utilizar esas llaves y no es necesario generar nuevas.

Generar las llaves SSH

Ahora bien, este paso es necesario únicamente si no cuentas con unas llaves existentes, si ya las tienes no es necesario hacerlo. Puedes continuar con el siguiente paso. Para generar una llave nueva es necesario ejecutar el siguiente comando.

$ ssh-keygen -t rsa -C "your_email@example.com"

Inmediatamente te pedirá el nombre del archivo en donde se guardará la llave, para este ejemplo usaremos el nombre por default, por lo tanto basta con presionar enter.

Lo siguiente que te pedirá será un passphrase o una contraseña, aquí puedes introducir lo que gustes, esta contraseña es para las llaves.

Agregar la llave pública a GitHub

Para agregar la llave la tenemos que copiar, basta con abrir el archivo id_rsa.pub en algún editor de texto como Notepad, Sublime Text, etc. y copiar el contenido.

Lo siguiente es ir a github.com y una vez logueados vamos a las configuraciones de la cuenta, luego en el menu SSH keys, damos click en Add SSH key, pegamos la llave pública en el textarea key y presionamos el botón Add Key. Github nos pedirá indicar nuestro password y una vez hecho esto ya podremos conectarnos vía SSH a los servidores de GitHub para enviar y recibir código de manera segura.

Probar que funcione

Par hacer la prueba simplemente intentaremos conectarnos a los servidores de GtHub de la siguiente manera.

$ ssh -T git@github.com

Si es la primera vez que nos conectamos nos aparecerá un warning como el siguiente.

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

Simplemente escribimos yes y si todo salió bien deberíamos ver el siguiente mensaje en la consola.

Hi crysfel! You've successfully authenticated, but GitHub does not
# provide shell access.

Github no nos da acceso de shell a sus servidores, pero al ver ese mensaje sabremos que hemos configurado correctamente nuestras llaves y estamos listos para enviar y recibir código.

Te gustaría recibir más tutoriales como este en tu correo?

Este tutorial pertenece al curso GIT en el mundo real, te recomiendo revises el resto de los tutoriales ya que están en secuencia de menor a mayor complejidad.

Si deseas recibir más tutoriales como este en tu correo te recomiendo registrarte al curso, si ya eres miembro solo identifícate y registrate al curso, si no eres miembro te puedes registrar gratuitamente!

Si no gustas registrarte en este momento no es necesario! Aún así puedes recibir los nuevos tutoriales en tu correo! Jamás te enviaremos Spam y puedes cancelar tu suscripción en cualquier momento.

¿Olvidaste tu contraseña?

2Comentarios

  • Avatar-11 Fernando Cabrera 08/07/2015

    como me deslogueo de git o del repositorio o cambiar de un repo a otro repositorio??? gracias

    • Avatar-4 Crysfel Villa 09/07/2015

      Te refieres a subir tu código a otro servicio, por ejemplo Bitbucket? Simplemente necesitas agregar el repositorio remoto y hacer push a ese en lugar del de github, aquí te dejo un tutorial donde hablo al respecto (https://quizzpot.com/courses/git-en-el-mundo-real/articles/usando-varios-repositorios-remotos). Ya que el "login" es vía keys de ssh, no necesitas desloguearte como tal, bien podrías borrar las llaves y listo, no tendrás más acceso al repositorio remoto. Saludos

    Instructor del curso

    Crysfel3

    Autor: Crysfel Villa

    Lleva un par de años utilizando GIT de manera productiva, antes de GIT utilizaba SVN y mucho antes CVS. No se arrepiente de haber cambiado de sistema de versiones.

    Regístrate a este curso

    Este tutorial pertenece al curso GIT en el mundo real, revisa todos los tutoriales que tenemos en este mismo curso ya que están en secuencia y van de lo más sencillo a lo más complicado.

    Ya que este curso no está finalizado al registrarte podrás recibir en tu correo los nuevos tutoriales de este curso!

    Tendrás acceso a descargar los videos, códigos y material adicional.

    Podrás resolver los ejercicios incluidos en el curso así como los Quizzes.

    Llevarás un registro de tu avance.