Saltar la navegación

4.8.1.- Trabajando con Git (II).

Algunas veces es interesante ir hacia atrás y borrar todos los cambios a partir de cierto punto porque, a lo mejor, estaban todos mal. Entonces, utilizaremos para ello el comando:

$ git log

Ese comando muestra una lista de commits recientes, y sus hashes SHA1. A continuación, debemos escribir:

$ git reset --hard SHA1_HASH

con él recuperamos el estado de un commit dado y se borran para siempre cualquier recuerdo de commits más nuevos. Otras veces es necesario saltar a un estado anterior temporalmente. En ese caso hay que escribir:

$ git checkout SHA1_HASH

este comando nos lleva atrás en el tiempo, sin tocar los commits más nuevos. Y con el comando:

$ git checkout master

podemos volver al presente. También existe la posibilidad de restaurar sólo archivos o directorios en particular, para ello los agregarmos al final del comando:

$ git checkout SHA1_HASH algun.archivo otro.archivo

Esta forma de checkout puede sobreescribir archivos sin avisar. Para prevenir accidentes, es recomendable hacer commit antes de ejecutar cualquier comando de checkout.

Podemos obtener una copia de un proyecto administrado por git escribiendo:

$ git clone git://servidor/ruta/a/los/archivos

en el caso de ya tener una copia de un proyecto usando git clone, podemos actualizar a la última versión con:

$ git pull
Ilustración en la que se ve parte de la ventana de Github con la información de un usuario y sus repositorios.
Elaboración propia (CC0)

Supongamos que estamos en un grupo de desarrollo y hemos realizado un script que nos gustaría compartir con otros. Para hacer esto con Git, en el directorio donde guardamos el script ejecutamos:

$ git init
$ git add .
$ git commit -m "Primer envío"

con lo cual, si los demás miembros del grupo de desarrollo ejecutan:

$ git clone tu.maquina:/ruta/al/script

podrán descargar el script. Esto asume que tienen acceso por ssh. Si no es así, ejecutamos git daemon y los demás desarrolladores utilizarían para obtener una copia del script:

$ git clone git://tu.maquina/ruta/al/script

De aquí en adelante, cada vez que modifiquemos el script y creemos que está listo para el lanzamiento, ejecutaremos:

$ git commit -a -m "Siguiente envío"

y los demás desarrolladores pueden actualizar su versión yendo al directorio que tiene el script y ejecutando:

$ git pull

En el caso de que queramos averiguar qué cambios hicimos desde el último commit ejecutaremos:

$ git diff

Otra de las ventajas de Git reside en la facilidad de crear nuevas ramas de trabajo, llamadas branch, donde probar nuevas características y hacer cambios complejos sin que afecte a la rama de trabajo principal. Luego, el proceso de fusión (merge), o la vuelta a un estado anterior es igual de fácil.

Github.com es una web donde alojar proyectos utilizando el sistema de control de versiones Git. Esta web ofrece, aparte del almacenaje de proyectos, herramientas para "socializarlos", como pueden ser feeds rss, wikis o gráficos de cómo los desarrolladores trabajan en sus repositorios.

Github.com.

Para empezar a usar Git, Github.com pone a disposición de quien los necesite, varios manuales en inglés tanto para configurar Git como crear nuestros primeros repositorios en Github.com