no, esto no es lo que pide el OP; está claro que quiere retroceder hasta la última confirmación, no deshacer la última confirmación. no dijo que agregó algunos archivos y luego los comprometió. tan claramente quiere el último compromiso.
Paul
1
Es muy difícil encontrar una respuesta a esta pregunta tan común
Sam
Respuestas:
211
Caveat Emptor : comandos destructivos por delante.
Mitigación : git reflogpuede salvarlo si lo necesita.
1) DESHAGA los cambios en el archivo local y MANTENGA su última confirmación
git reset --hard
2) DESHACER los cambios del archivo local y ELIMINAR su última confirmación
git reset --hard HEAD^
3) MANTENGA los cambios del archivo local y ELIMINE su última confirmación
Este comando eliminará tu confirmación anterior, ¡así que úsalo con precaución! git reset --hard es más seguro
rudivonstaden
9
WTF está haciendo esto como la respuesta correcta con 36 votos a favor. Acabo de perder un día de trabajo por esto ... porque leí la respuesta, no el comentario. ¡Esta no es la respuesta correcta a la pregunta!
Chris Nevill
1
¡No todo está perdido! Puede hacer git reflog, esto le permitirá ver las confirmaciones que hizo antes del reinicio. A continuación, puede consultar esas confirmaciones
Chris Nevill,
3
Por lo que vale, había interpretado la pregunta del OP como "cómo deshago la confirmación y elimino los archivos actuales", pero era y sigue siendo ambigua. Hubiera entendido de manera diferente si el OP simplemente hubiera dicho "cómo
elimino
2
Git es la antítesis de la declaración de Alan Kay. Las cosas simples deberían ser simples, las cosas complejas deberían ser posibles. ... especialmente de su primera parte. Aún así, gracias por tu respuesta. Eso ayudo.
0xC0000022L
46
Si desea eliminar contenidos y archivos recién agregados que ya están almacenados (por lo tanto, agregados al índice), use:
git reset --hard
Si desea eliminar también su última confirmación (es la que tiene el mensaje "bla"), entonces es mejor usar:
git reset --hard HEAD^
Para eliminar los archivos sin seguimiento (de modo que los archivos nuevos aún no se hayan agregado al índice) y las carpetas, use:
hizo eso, pero los archivos todavía están allí. (los archivos sin seguimiento todavía están allí)
Blankman
en este caso, podría hacer un "git stash"
jacktrade
3
votado a favor porque esta es la única respuesta clara e inequívoca a la pregunta clara e inequívoca del OP.
Paul
4
Puede revertir una confirmación utilizando git revert HEAD^para volver a la penúltima confirmación. También puede especificar la confirmación para revertir usando la identificación en lugar de HEAD ^
Respuestas:
Caveat Emptor : comandos destructivos por delante.
Mitigación :
git reflog
puede salvarlo si lo necesita.1) DESHAGA los cambios en el archivo local y MANTENGA su última confirmación
2) DESHACER los cambios del archivo local y ELIMINAR su última confirmación
3) MANTENGA los cambios del archivo local y ELIMINE su última confirmación
fuente
Si desea eliminar contenidos y archivos recién agregados que ya están almacenados (por lo tanto, agregados al índice), use:
Si desea eliminar también su última confirmación (es la que tiene el mensaje "bla"), entonces es mejor usar:
Para eliminar los archivos sin seguimiento (de modo que los archivos nuevos aún no se hayan agregado al índice) y las carpetas, use:
fuente
git reset --hard
forzará al directorio de trabajo a volver a la última confirmación y eliminará los archivos nuevos / modificados.fuente
Puede revertir una confirmación utilizando
git revert HEAD^
para volver a la penúltima confirmación. También puede especificar la confirmación para revertir usando la identificación en lugar de HEAD ^fuente
Si solo desea eliminar el último compromiso, use esto:
funciona como un encanto para mí.
fuente
Una forma sencilla e infalible de DESHACER los cambios de archivos locales desde la última confirmación es colocarlos en una nueva rama:
Esto deja los cambios en la nueva rama. Regrese a la rama original para encontrarla en la última confirmación:
La nueva rama es un buen lugar para practicar diferentes formas de revertir los cambios sin riesgo de estropear la rama original.
fuente