¿Cómo deshacer un git pull?
Me gustaría deshacer mi git pull debido a confirmaciones no deseadas en el origen remoto, pero no sé a qué revisión tengo que restablecer.
¿Cómo puedo volver al estado anterior a git pull en el origen remoto?
O para hacerlo más explícito que la otra respuesta:
git pull
ups?
git reset --keep HEAD@{1}
Las versiones de git anteriores a 1.7.1 no tienen --keep
. Si usa dicha versión, podría usarla --hard
, pero es una operación peligrosa porque pierde todos los cambios locales.
al comentarista
ORIG_HEAD es el estado anterior de HEAD, establecido por comandos que tienen un comportamiento posiblemente peligroso, para que sea fácil revertirlos. Es menos útil ahora que Git tiene reflog: HEAD@{1} es aproximadamente equivalente a ORIG_HEAD (HEAD@{1} es siempre el último valor de HEAD, ORIG_HEAD es el último valor de HEAD antes de una operación peligrosa)
git reflog show
debería mostrarte la historia de HEAD. Puedes usarlo para averiguar dónde estabas antes del pull
. Entonces puedes reset
comprometerte HEAD
con ese compromiso.
Esto funcionó para mí.
git reset --hard ORIG_HEAD
Deshacer una fusión o extracción:
$ git pull (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard (2)
$ git pull . topic/branch (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD (4)
Consulte esto: HEAD y ORIG_HEAD en Git para obtener más información.