Git: Revisar y Restaurar versiones antiguas

Recuperar la versión anterior de ficheros en Git es una de las tareas más comunes que puede realizar un programador. Suele pasar que nos hemos puesto a programar y hemos llegado hasta tal punto que lo mejor es volver al punto donde comenzamos.

Revisando versiones

El comando git log es el que nos va a permitir revisar las instantáneas (snapshots) de ficheros en nuestros repositorio. Por lo que git log nos va a mostrar el histórico de cualquier fichero dentro del repositorio. Si ejecutamos git log sin parámetros este nos mostrará todas las revisiones realizadas desde la más reciente a la más antigua.

Para comprobar las versiones de un fichero determinado indicaremos a continuación el nombre del fichero.

Como puede que se nos muestren demasiadas revisiones, vamos a usar el parámetro –n para filtrar un número determinado de ellas.

Si la única información que necesitamos es el número de revisión podemos simplificar la salida en una sola linea usando el parámetro —oneline

Y en caso de necesitar información detallada de los cambios usaremos el parámetro –stat

Si trabajamos en grupo es posible filtrar por el autor del commit. Por ejemplo, vamos a buscar cualquier usuario que contenga el nombre Luis.

Otro método muy utilizado es buscar dentro del mensaje comiteado.

Y también vamos a poder filtrar por fechas usando los argumentos since, after, before.

Restaurando versiones

Una vez localizada la versión del fichero que queremos restaurar vamos a usar el comando git checkout seguido de la versión del fichero.

Git nos va a avisar de que podemos perder uno o varios commits registrados desde la versión que hemos decidido recuperar por lo que si queremos conservar estas versiones las podemos copiar a una rama alternativa.

La mejor alternativa a la hora de recuperar una versión antigua es hacerlo sobre una nueva rama. De esta forma podemos trabajar con la revisión en la nueva rama que acabamos de crear y ya cuando tengamos los cambios definitivos podemos realizar un merge de esta en la rama deseada.

Comparación de versiones

Para comparar diferencias entre versiones usaremos el comando git diff

 

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.