13 noviembre 2014

Git y Github, tutorial básico de uso bajo GNU/Linux

Pequeños apuntes del uso básico este software de control de versiones con Git. Cómo clonar un repositorio en nuestra máquina modificarlo y subir nuestros aportes al repositorio principal en Github.

Lo primero aclarar que no soy un experto en Git, ni nada por el estilo. Estos son unos apuntes sencillos que he tomado y con los que trabajo. Simplemente utilizo un repositorio del equipo de diseño de BuenosAiresLibre, con el que colaboro, que tienen alojado con GitLab,y en donde comparto mi trabajo.

¿Que es Git?

Git es un software para el control de versiones desarrollado en un principio por Linus Torvalds (sí, el creador del kernel Linux!) y se ha convertido en una herramienta indispensable para el desarrollo de software, incluido el propio kernel de Linux. Ya había otros programas que más o menos realizaban estas funcionas.

Pero al señor Torvalds no le convencían, así que se aplicó el lema de GNU/Linux. si no existe siempre lo puedes crear. Y se puso manos a la obra y desarrolló este software. Y como es “lema de la casa” del creador del kernel Linux, es software abierto y colaborativo, por lo que el propio software de Git es desarrollado y mantenido por la comunidad en todo el mundo.

¿Cómo lo instalo?

Para instalarlo en GNU/Linux, utiliza tu gestor de paquetes favorito, como estamos en Slackware, abri Gslapt (o slapt-get -i git logueado como root desde la línea de comandos) y busca Git, e instalalo, junto con sus dependencias, así de simple!

¿Qué es GitHub?


Esta web es un lugar donde nos proporcionan espacio para almacenar nuestros repositorios. Así no tienes que preocuparte de gestionar un servidor, etc. Ellos hacen el trabajo lo que resulta muy cómodo. Existen otras opciones como Gitorius, y otras. Pero hablaré de esta que es la que use.

Para trabajar con repositorios de otros en los que colaborar con tu trabajo. Tenes que abrirte una cuenta en la página de GitHub. Rellenar un sencillo formulario y un certificado digital para que cuando subas material el servidor te identifique y autentifique que realmente eres quien dices ser. Esto es muy fácil, así que no lo explico, hasta yo lo conseguí hacer!! ;)

Si vas a trabajar en repositorios de otros, como veremos en este ejemplo, es necesario que el mantenedor o encargado del repositorio te autorice a ti, a tu usuario de GitHub a escribir en el repo, de lo contrario sólo podrás leer, pero no podrías subir tus aportes, así que pídele derechos de lectura/escritura.

¿Cómo trabaja Git?

Con Git puedes crear tu propio repositorio y trabajar en él. O puedes trabajar con el repositorio de otros, que será el caso que veamos. En este ejemplo que traigo al blog no es código de programa lo que veremos, ya que no estoy programando. Si no un repositorio donde se almacenan diseños y creaciones para el artwork de Centrux desarrollado por gente de todo el mundo. Pero eso nos es transparente. Da igual la naturaleza de los archivos que manejemos. En este caso trabajaremos sobre el repositorio principal, no haremos una rama propia, etc. Esto es sólo un primer acercamiento.

A grandes rasgos.

Clonaremos en nuestra máquina el repositorio original. Es decir Git descarga en tu equipo local, en tu PC de casa, todo el contenido del repositorio que se encuentra almacenado en GitHub. Es decir en tu equipo se creará una carpeta con todo el contenido idéntico a la que existe en el repositorio.

Si ya lo tenías clonado de una vez anterior, ese paso no es necesario, así que nos saltaríamos esa parte, lo que haremos será actualizar la copia que tenemos en nuestro equipo local, para que descargue los nuevos aporte que hayan podido hacer otros usurios.

Ahora que ya tienes las herramientas y los archivos que queremos, toca trabajar. Ya podemos realizar las modificaciones que queramos en los archivos que sea necesario, podremos crear nuevos archivos, o carpetas, etc…

Realizado el trabajo le diremos a Git que añada y tenga en cuenta nuestros cambios, a los que etiquetaremos de alguna manera para identificarlos, y después los mandaremos al repositorio principal en GitHub donde quedarán almacenados y disponibles para que otros los puedan utilizar y modificar.

Explicado así no parece muy difícil, verdad? Pues ahora iremos al meollo de la cuestión. Utilizaremos los comandos adecuados y verás que tampoco es algo difícil en la práctica.

Comandos básicos.

La forma de trabajo es desde la línea de comandos. Hay interfaces gráficas para realizar estos trabajos, pero desconozco su uso. Así que se note que eres un usuario de GNU/Linux de “pro”! Abre un terminal y teclea comandos! Hay algo mas bonito?? ;)

Empezaremos clonando en nuestra máquina el repositorio que nos interesa alojado en GitHub, para ello utilizaremos el comando: git clone . Nos situaremos en un directorio donde queramos clonar el repositorio, en este caso crearemos uno llamado Git y dentro de este clonaremos el repo. En este caso tendrías que cambiar el nombre del repo, por aquel con el que quieras trabajar.

vampii
@narsil:[~]$ mkdir Git
vampii
@narsil:[~]$ cd Git
vampii@narsil:[~]$ git clone https://github.com/nombre_de_repo/

Dependiendo del tamaño del repositorio y de la calidad de nuestra conexión a Internet, tardará más o menos en descargarlo. Una vez finalizado el proceso ya tenemos los archivos del repositorio en nuestro PC. Este proceso de clonado sólo es necesario hacerlo la primera vez o si hemos borrado nuestra copia local del repositorio. Una vez clonado en nuestro equipo no es necesario volver a realizar este paso.

Ahora vamos a actualizarlo. Despues de clonado no tiene mucho sentido actualizarlo, porque no debe haber ningún cambio como es lógico. Pero si ya teníamos nuestro repositorio clonado de una vez anterior debemos actualizar nuestra copia local del repositorio con los cambios que hayan hecho otros usuarios.

Veamos como actualizar nuestra copia local del repositorio. Siempre trabajando desde el directorio donde lo tenemos descargado en nuesto equipo escribimos el siguiente comando: git pull

vampii
@narsil:[~]$ git pull https://github.com/nombre_de_repo/

Dependiendo de la cantidad de modificaciones hechas por otros tardará más o menos en actualizar nuestra copia local. Una vez terminado ya podemos hacer los cambios que queramos o sean necesarios. En nuestro ejemplo imaginemos que hemos creado una nueva carpeta llamada Traducciones y dentro un archivo de texto llamado Español.txt (por ejemplo…)

Bien hecho esto veamos cuales son los cambios pendientes con el siguiente comando: git status

vampii
@narsil:[~]$ git status

Y veremos que nos presenta los cambios que hemos hecho. En nuestro ejemplo nos dirá que hemos creado una carpeta y añadido un nuevo archivo.

Para que tenga en cuenta nuestros cambios le diremos que los añada al repo con el siguiente comando git add .  (Sí, el punto también forma parte del comando!!)

vampii
@narsil:[~]$ git add .

Ahora etiquetaremos estos cambios. Esto es útil para saber qué es lo que se ha hecho. Un pequeño comentario para explicar la naturaleza de la modificación, esto se especifíca mediante este comando: git commit -m “comentario” -a  Debemos poner los modificadores -m y -a para que se etiqueten así a todos los cambios.

vampii[~]$ git commit -m "Creada carpeta de traducciones y añadida la española" -a

Hasta ahora hemos dicho a Git  que tenemos cambios, que vamos a añadir, pero estos no han salido de nuestra máquina, así que sólo estan aplicados en local. Ahora debemos lanzarlos y decirle a Git que los añada al repositorio en GitHub y así esten disponibles para todos. Esto se hace mediante el comando git push

vampii
@narsil:[~]$ git push https://github.com/nombre_de_repo/

Se pide autentificación del usuario, metes tu nombre de usuario y contraseña y si tienes derechos de escritura en el repo, git subirá tus cambios, y la copia en el servidor de GitHub tendrá tus cambios disponibles para todos!

Despues de eso si no quieres almacenar la copia del repositorio local en tu PC para no utilizar espacio en el disco duro la puedes borrar. Y la próxima vez que quieras volver a trabajar con el repositorio tendrás que volver a clonarlo. Si no lo borras, antes de trabajar y hacer tus cambios debes actualizar tu copia local para asegurarte que estas trabajando con lo último y más actualizado disponible en el repositorio.


Espero que te sirva como primera guía este tutorial. Git es una herramienta mucho más potente que esto que te he mostrado aqui. Estos son simplemente mis apuntes, que expongo aqui por si sirven a alguien más, si es así me alegro!! Por último te dejo algunas direcciones y un vídeo muy bueno que he encontrado para aclarar más los conceptos.


Enlaces de Interés:

    Página ofial de Git | http://git-scm.com/
    Página oficial de GitHub | https://github.com/
    Git en Wikipedia | http://es.wikipedia.org/wiki/Git


Basado en: http://victorhckinthefreeworld.wordpress.com/2012/09/26/git-y-github-tutorial-basicode-uso-bajo-gnulinux/

No hay comentarios: