Si no está totalmente seguro de lo que quiere decir con «deshacer el compromiso» y no sabe si desea utilizar git reset
, consulte «Revertir a una confirmación de Git anterior».
Si estas tratando de entender git reset
mejor, consulte «¿Puede explicar qué hace» git reset «en un lenguaje sencillo?».
Si sabes que quieres usar git reset
, todavía depende de lo que quieras decir con «no comprometido». Si todo lo que quiere hacer es deshacer el acto de cometer, dejando todo lo demás intacto, use:
git reset --soft HEAD^
Si desea deshacer el acto de cometer y todo lo que había organizado, pero deja intacto el árbol de trabajo (sus archivos):
git reset HEAD^
Y si realmente quieres completamente deshacerlo, desechando todos los cambios no confirmados, restableciendo todo a la confirmación anterior (como se hacía en la pregunta original):
git reset --hard HEAD^
La pregunta original también planteaba HEAD^
no HEAD
. HEAD
se refiere a la confirmación actual – generalmente, la punta de la rama actualmente extraída. los ^
es una notación que se puede adjuntar a alguna commit especificador, y significa «el compromiso antes». Entonces, HEAD^
es la confirmación antes de la actual, al igual que master^
es la confirmación antes de la punta de la rama maestra.
Aquí está la parte del documentación de git-rev-parse describiendo todas las formas de especificar confirmaciones (^
es solo uno básico entre muchos).