Original article: Git Revert File – Reverting a File to a Previous Commit

Git es un sistema de control de versiones que ayuda a equipos e individuos a rastrear y registrar los cambios realizados en un archivo o en un proyecto completo.

Cuando trabajas con Git, a menudo confirmas tus cambios y luego los envías a un repositorio remoto.

Supongamos que has realizado muchas confirmaciones y luego te das cuenta de que tu versión actual de cambios es errónea. O descubres una situación que requiere que reviertas a una confirmación anterior, como un error extraño.

Cambiar manualmente cada línea de código en tu archivo a su estado original o a un estado de confirmación específico y hacer una nueva confirmación puede llevar a un historial de confirmaciones desordenado. Revertir el archivo es una forma mucho más limpia de manejarlo.

Hay muchos enfoques posibles, pero en este artículo aprenderás el mejor enfoque, el método git checkout.

Si tienes prisa, aquí está el comando:

$ git checkout SHA-HASH -- archivo/ruta-del-archivo

Pero supongamos que no tienes prisa. Primero aprendamos cómo localizar todas las confirmaciones previas y sus códigos hash SHA. Luego veremos cómo revertir un archivo a una confirmación anterior.

Cómo encontrar el SHA/ID de confirmación

Hay muchas formas de obtener el SHA y los detalles de cada confirmación. El mejor método es usar el siguiente comando en tu terminal:

$ git log

Este comando mostrará una lista de todas las confirmaciones que has realizado en tu proyecto para todos los archivos y sus códigos hash:

s_E7BE213D0AE03E619B0ABFE8B0450BCDCD832D2BDB3CB303964F1820DADBA52A_1660857327507_image

Pero un comando más simple de usar es el siguiente, donde añades la opción oneline:

$ git log -- oneline

Nota: La opción oneline muestra la salida como una confirmación por línea.

198d425 (HEAD -> main) initial
c368a1c new removal
bcbef35 updated readme 2
da9cc5f (origin/main) updated Readme
a5150af first commit

Usando solo este comando devolvería todas las confirmaciones realizadas en ese proyecto. Si deseas revertir un archivo en particular a una confirmación anterior, primero debes ver todas las confirmaciones realizadas a ese archivo.

Para hacer esto, agrega el nombre del archivo al comando:

$ git log -- oneline README.md

En una situación donde el archivo se encuentra en otra carpeta, puedes navegar mediante tu terminal a esa carpeta o usar la ruta del archivo en el comando como se ve a continuación:

$ git log -- oneline src/App.js

Esto devolverá solo las confirmaciones para el archivo especificado y el código hash SHA de la confirmación seguido por el mensaje de confirmación. Utilizarás el hash SHA para revertir tu archivo:

198d425 (HEAD -> main) initial
c368a1c new removal
bcbef35 updated readme 2
da9cc5f (origin/main) updated Readme
a5150af first commit

Cómo revertir un archivo a una confirmación previa

Ahora que sabes cómo obtener el código SHA, puedes usar el comando git checkout para revertir tu archivo a cualquier confirmación que deseas, pasando también el nombre del archivo o la ruta del archivo:

$ git checkout da9cc5f -- README.md

Ó

$ git checkout 55a1dff -- src/App.js

Solo asegúrate de querer revertir ese archivo antes de hacerlo, porque vas a descartar tus cambios locales y actuales del archivo. Git reemplazará el archivo con la versión confirmada especificada. Usa esto solo si estás seguro y no quieres esos cambios locales no guardados.

Resumiendo

En este artículo, has aprendido cómo revertir un archivo a una confirmación previa con el comando git checkout.

Es importante saber que cuando reviertes, necesitarás confirmar los cambios nuevamente (los cambios revertidos). Puedes hacer esto con el comando confirmar estándar:

$ Git commit -m 'mensaje de confirmación'

Luego puedes enviar esa confirmación al repositorio remoto que desees.

Puedes aprender más sobre Git y GitHub en este curso completo de 5+ horas, video o estos artículos.

¡Diviértete programando!