Marcha atrás

Compártelo

Diferentes situaciones por las que te arrepientes de lo que has hecho.

Git Checkout

Para eliminar los cambios del working directory.

Con el comando git checkout reemplaza todo lo que hay en el working directory por la última versión aprobada (HEAD).

Checkout admite trabajar con fichero y con ramas. Para indicarle que se trata de un fichero, se lo indicaremos con «–«. Git interpretará que lo que viene después de — es el nombre de un fichero. Si no, es una rama.

Para hacer checkout en la rama master sería

$git checkout master

Para hacer checkout en el fichero master es

$git checkout -- master

Y el comando siguiente forzaría el reemplazo de de todos los archivos. Pasaría todo lo que hay en el último commit al working directory:

$git checkout HEAD -- .

Git Reset

Para eliminar los cambios almacenados en el Staging.

Si tienes algo en el staging (cambios aceptados con el add) y quieres eliminarlo, usa el reset.

$git reset HEAD ficheroCambiado

Lo eliminará de la zona staging y lo pasará al working directory.

Si resulta que en el staging tienes varios fichero y quieres traerlos todos, debes indicarlo añadiendo un «.» Pero también puedes elegir una lista de ficheros. En ese caso, escribe sus nombres separados por un espacio.

$git reset HEAD .
$git reset documento fichero1 fichero2

Git Reset Hard

Para eliminar los cambios en el Staging y el working directory.

Si tienes un escenario en el que has trabajado, hecho algún add y has hecho cambios en el working directory pero resulta que quieres deshacerlo todo. Es decir, borrarlo todo (lo que está en staging y lo que hay en working directory) puedes usar el comando siguiente. Te devolverá la última versión aprobada. O sea, al último commit (HEAD).

$git reset --hard

Git Revert

Para eliminar los cambios aprobados con un commit.

Es decir, para eliminar los commits hechos.

Si modificaste un archivo y has hecho un commit y luego te das cuenta de que hay un error, puedes revertir ese commit. El comando creará un nuevo commit en el histórico quedará registrada la inversión por lo que puedes volver a él otra ves.

El comando git reset HEAD~1 tiene el mismo efecto y borrará el commit creado con el revert.

$git reset HEAD~1

Lo interesante es que puede hacer revert de varios commits de una sola vez. Usa el carácter «~» como si fuera un signo de resta. Por ejemplo, HEAD~3, son tres commit desde el HEAD. Si o combinas con «…» indicarás un rango entre dos commit.

$git revert
$git rever HEAD...HEAD~3

$git rever HEAD…HEAD~3 revierte los commits hechos entre el HEAD y el HEAD~3.

Si en un revert, no tienes ganas de pasar uno a uno por los cambios del rango seleccionado, puedes hacer así:

$git revert HEAD...HEAD~2 --no-edit

Para eliminar los cambios del working directory.

Con el comando git checkout reemplaza todo lo que hay en el working directory por la última versión aprobada (HEAD).

Checkout admite trabajar con fichero y con ramas. Para indicarle que se trata de un fichero, se lo indicaremos con «–«. Git interpretará que lo que viene después de — es el nombre de un fichero. Si no, es una rama.

Para hacer checkout en la rama master sería.

$git checkout master

Para hacer checkout en el fichero master es

$git checkout -- master

Y el comando siguiente forzaría el reemplazo de de todos los archivos. Pasaría todo lo que hay en el último commit al working directory:

$git checkout HEAD -- .

Git Reset

Para eliminar los cambios almacenados en el Staging.

Si tienes algo en el staging (cambios aceptados con el add) y quieres eliminarlo, usa el reset.

$git reset HEAD ficheroCambiado

Lo eliminará de la zona staging y lo pasará al working directory.

Si resulta que en el staging tienes varios fichero y quieres traerlos todos, debes indicarlo añadiendo un «.» Pero también puedes elegir una lista de ficheros. En ese caso, escribe sus nombres separados por un espacio.

$git reset HEAD .
$git reset documento fichero1 fichero2

Git Reset Hard

Para eliminar los cambios en el Staging y el working directory.

Si tienes un escenario en el que has trabajado, hecho algún add y has hecho cambios en el working directory pero resulta que quieres deshacerlo todo. Es decir, borrarlo todo (lo que está en staging y lo que hay en working directory) puedes usar el comando siguiente. Te devolverá la última versión aprobada. O sea, al último commit (HEAD).

$git reset --hard

Git Revert

Para eliminar los cambios aprobados con un commit.

Es decir, para eliminar los commits hechos.

Si modificaste un archivo y has hecho un commit y luego te das cuenta de que hay un error, puedes revertir ese commit. El comando creará un nuevo commit en el histórico quedará registrada la inversión por lo que puedes volver a él otra ves.

El comando git reset HEAD~1 tiene el mismo efecto y borrará el commit creado con el revert.

$git reset HEAD~1

Lo interesante es que puede hacer revert de varios commits de una sola vez. Usa el carácter «~» como si fuera un signo de resta. Por ejemplo, HEAD~3, son tres commit desde el HEAD. Si o combinas con «…» indicarás un rango entre dos commit.

$git revert
$git rever HEAD...HEAD~3

$git rever HEAD…HEAD~3 revierte los commits hechos entre el HEAD y el HEAD~3.

Si en un revert, no tienes ganas de pasar uno a uno por los cambios del rango seleccionado, puedes hacer así:

$git revert HEAD...HEAD~2 --no-edit


Compártelo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *