Empezando con Git. Parte I

En esta y en la próxima entrada voy explicar lo justo para empezar a manejar el blog de Jekyll mediante Git, no olvidaros que es en Github donde lo tenemos alojado.

Hay un refrán que dice: “Aprendiz de mucho maestro de nada” el cual me define a la perfección, manejo muchos programas, sistemas, gadgest, etc, no lo puedo remediar, me gusta cacharrear. De muchos de ellos conozco lo básico, desaprovechando todo su potencial, o siguiendo con dichos populares “matando moscas a cañonazos”.

No voy a profundizar en el tema, carezco de los conocimientos necesarios pero es necesario conocer unos pocos comandos y entender unos pocos conceptos sobre Git, solo los necesarios, para poder manejar el blog.

Puede que el hecho de tener que utilizar la consola para actualizar o añadir nuevo contenido al blog eche para atrás a usuarios poco expertos, pero como veréis, solo se trata de cuatro comandos y par de conceptos muy fáciles de entender.

Ademas, como anticipo de una próxima entrada, todo esto se puede llegar a realizar de forma gráfica desde el editor de código Atom y el hecho de entender estos conceptos te ayudara a saber lo que está haciendo Atom por tí.

Antes de que sigas, si necesitas unas notas rápidas sobre como empezar con git Angel en su blog Ugeek tiene dos entradas GitHub en la Terminal. Comandos y GitHub. Configurarlo en tu Pc mediante la terminal que deberías de ver.

Entrando en materia

Lo primero que deberías de hacer es configurar tu nombre de usuario y dirección de correo electrónico

 git config --global user.name "usuario"
 git config --global user.email "usuario@direccion.com"

Estas credenciales se guardaran en el fichero ~/.gitconfig

Iniciamos el repositorio

 git init

Con esta orden se crea un subdirectorio oculto (.git) donde se irá guardando todo el historial de archivos y todas sus versiones.

Ya podríamos empezar a trabajar pero personalmente prefiero seguir la recomendación que nos da Ángel en GitHub. Configurarlo en tu Pc mediante la terminal y generar un par de llaves ssh para encriptar el tráfico entre nuestro ordenador y el repositorio de GitHub.

Si te da igual la seguridad y no estás preocupado por estas cosas te puedes saltar los siguientes pasos y pasar directamente a clonar el repositorio en tu disco Local.

Abrimos la terminal y ejecutamos las siguientes instrucciones:

cd ~/.ssh/
rm .*_rsa
rm *.pub

Una vez borradas las posibles llaves que tuviésemos, también desde la terminal ejecutamos:

ssh-keygen

Vamos pulsando intro a las preguntas que van apareciendo, dejando los valores por defecto, es importante no poner contraseña a la clave, por si alguien cae en la tentación.

Una vez terminado, si habéis dejado las opciones por defecto, dentro de la carpeta ~/.ssh/ deberiamos tener algo parecido a esto:

[carlos@Aspire-E5-574G ~]$ ls -la ~/.ssh/
total 20
drwx------  2 carlos users 4096 may  2 17:25 .
drwx------ 29 carlos users 4096 may  3 21:55 ..
-rw-------  1 carlos users 3243 may  2 17:20 id_rsa
-rw-r--r--  1 carlos users  745 may  2 17:20 id_rsa.pub

Abrimos el fichero id_rsa.pub con un editor de texto y copiamos su contenido.

Nos vamos a nuestra cuenta en git.com y entramos en Settings

Dentro de Settings pinchamos en SSH and GPG keys

Para añadir nuestra clave publica pinchamos en New SSH key

Y pegamos el contenido del fichero ~/.ssh/id_rsa.pub

Nos pedirá nuestra contraseña de github para confirmar los cambios.

Si todo ha ido bien veremos nuestra llave importada.

Con todo esto ya tendremos configurado nuestro ordenador y github para trabajar con ssh.

Podemos comprobar si la conexión con el repositorio funciona correctamente.

[carlos@Aspire-E5-574G ~]$ ssh -T git@github.com
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey).

En el ejemplo vemos como la conexión no funciona, en mi caso para solucionarlo, vuelvo a lanzar ssh-agent.

[carlos@Aspire-E5-574G ~]$ eval "$(ssh-agent -s)"
Agent pid 18255

Y vuelvo a comprobar la conexión.

[carlos@Aspire-E5-574G ~]$ ssh -T git@github.com
Hi hefistion! You've successfully authenticated, but GitHub does not provide shell access.

Clonando el repositorio

Para poder clonar el repositorio en nuestro ordenador deberemos obtener su enlace ssh pinchando sobre el botón verde Clone or download y copiar el texto que aparece.

En el caso de que no haber configurado llave ssh deberemos seleccionar Use HTTPS para obtener el enlace.

Debemos situarnos en la carpeta donde vamos a poner el repositorio y ejecutar git clone junto al texto que acabamos de obtener.

[carlos@Aspire-E5-574G Github]$ git clone git@github.com:hefistion/hefistion.github.io.git
Cloning into 'hefistion.github.io'...
remote: Counting objects: 1515, done.
remote: Total 1515 (delta 0), reused 0 (delta 0), pack-reused 1515
Receiving objects: 100% (1515/1515), 8.28 MiB | 463.00 KiB/s, done.
Resolving deltas: 100% (830/830), done.
[carlos@Aspire-E5-574G Github]$ git init
Reinitialized existing Git repository in /mnt/Datos/Proyectos/Github/.git/
[carlos@Aspire-E5-574G Github]$

Ya tenemos nuestro repositorio en nuestro disco local, es hora de empezar a trabajar. Pero eso lo veremos en la próxima entrada del blog junto a unos pequeños conceptos que nos ayudaran a manejar mejor nuestro blog.

PD: Mi intención era hacer entradas al blog a modo de notas, pero es tan fácil trabajar en Jekyll que no pude evitar escribir y escribir, cuando termine me dí cuenta que el nuevo articulo era demasiado extenso para mi gusto así que decidí dividir la entrada en dos ;-)

comentario powered by Disqus