22  Restore y reset

Otra forma de deshacer cambios es con restore y reset. Usualmente se requiere para deshacer:

Supongamos que hicimos un cambio en el archivo de prueba y lo guardamos y después decidimos que ya no queremos ese cambio, entonces usamos la opción:

git restore prueba.txt

Esto nos regresará a la versión del archivo del último commit.

Warning

Esto no se puede deshacer, una vez echo esto no hay forma de recuperar los cambios que se habían realizado.

git restore <archivo>, Basado en ASPP-Latam

Ahora, supongamos que hicimos un cambio y lo mandamos al área de preparación, entonces para sacarlo de esa área usamos:

git restore --staged prueba.txt

git restore –staged <archivo>, Basado en ASPP-Latam

También se pueden restaurar todos los archivos de un proyecto con:

git restore .

Para restaurar a un commit anterior usamos el identificador del commit, por ejemplo:

git restore --source d3a9d6d prueba.txt

Si ahora revisamos el estado del proyecto veremos que si hay cambios.

Agreguemos una línea al archivo prueba.txt y añadamos el cambio al área de preparación. Usen git checkout para ver si podemos revertir el cambio. Veamos que nos dice el estado git status. Si usamos git checkout -- prueba.txt ya no veremos errores pero tampoco se restaurará el archivo.

Para hacerlo debemos usar reset:

git reset HEAD prueba.txt

Y si usamos ahora:

git status

Nos indica que ya podemos realizar la modificación con checkout:

git checkout -- prueba.txt
git status

Con reset tenemos tres posibles situaciones.

git reset –soft HEAD~1, Basado en ASPP-Latam

git reset –mixed HEAD~1, Basado en ASPP-Latam

git reset –hard HEAD~1, Basado en ASPP-Latam