Tabla de contenido
Una vez más aquí. En esta ocasión vamos a continuar la serie de artículos sobre el sistema de gestión de código fuente descentralizado llamado git. En el último artículo lo dejamos en Cómo borrar archivos borrados accidentalmente, por lo que vamos a continuar en Cómo recuperar versiones.
Recuperar versiones
Para ejecutar esta recuperación de versiones vamos a suponer que ya hemos efectuado diferentes cambios sobre un fichero, pero supongamos que necesitamos recuperar un código que escribimos anteriormente. Git nos va a permitir situarnos en el momento del commit que nos interesa.
Para hacer esto, es imprescindible indicar un número de commit que corresponde con ese momento. Por eso, para empezar necesitaremos listar esos momentos con git log. Justo para esto resultan importantes los mensajes que hayamos escrito a la hora de realizar el commit, ya que nos pueden resultar identificativos del momento del proyecto.
Recuperar con git chekout
En la última captura de pantalla se puede ver que cada commit cuenta con un código hash único. Este código nos servirá si lo utilizamos con git checkout para movernos a ese punto en concreto del tiempo. Hay que decir que no necesitaremos poner el código entero, basta con utilizar los primero caracteres.
En este ejemplo vamos a movernos al commit que indica que se ha añadido el archivo README.md. Para hacerlo sobre habría que utilizar el comando:
git checkout 447d9d
Al hacer esto, git se encuentra en modo detached. Esto nos permitirá mirar, hacer cambios y guardarlos o bien ignorarlos y crear nuevos cambios con un nuevo checkout.
Para salir de ese estado, basta con hacer:
git checkout master
Recuperar con git show
Otra forma de recuperar archivos de otros commits es utilizando el comando git show. Este comando va a mostrar contenidos de ramas, commits, etc … y permite recuperar contenidos de archivos.
Por defecto git show muestra información del último commit:
git show
Además también se puede indicar un commit concreto. Esto nos ofrecerá toda la información y cambios del mismo:
git show 447d9d
Para recuperar un archivo en concreto, bata con indicar la ruta del mismo:
git show 447d9d:README.md
El anterior comando nos mostrará el contenido del archivo, por lo que podremos guardar ese contenido copiando la salida y guardándola con una redirección:
git show 447d9d:README.md > README.md
Diferencias
Creo que ya he mencionado anteriormente que el comando para mostrar diferencias es git diff. Además este también permite comparar diferencias entre distintos commits. Esto lo conseguiremos indicando los identificadores de los commits que queramos comparar.
Para obtener los identificadores, solo necesitaremos ejecutar:
git log --pretty --oneline
Ahora que ya los tenemos, vamos a comparar los dos últimos que se han listado:
git diff 50afabd 447d9da
Eliminar el repositorio
Esta parte es la más sencilla de todo lo visto hasta ahora. Podemos cargarnos el repositorio de un proyecto de git borrando el directorio .git que encontramos dentro del directorio sobre el que estamos trabajando con el comando:
rm -rf .git
Para ejecutar esto, hay que tenerlo muy claro, ya que si lo llevamos a cabo nos cargaremos todo el trabajo que hemos realizado hasta ahora.
Hasta aquí el volumen 3 de esta serie del sistema de gestión de código fuente descentralizado. Pronto llegará la siguiente entrega, en la que hablaremos sobre el uso de ramas o branches.