2010-09-07 18 views

Respuesta

93

git revert simplemente crea un nuevo commit - se puede "eliminar" con git reset --hard HEAD^

+2

Tenga cuidado con 'git reset --hard HEAD ^', ya que eliminará cualquier cambio no confirmado. – Jeremen

+1

Si haces un 'git stash' antes de' git reset --hard HEAD^'puedes" guardar "tus cambios sin compromiso. Después del 'git reset --hard HEAD ^' haz un 'git stash pop' para volver a cargar los cambios sin compromiso en la rama actual. – kukko

26

El comando git revert sólo crea una confirmación de que deshace otra (tener más cuidado con él, sin embargo!). Debería poder ejecutar git revert HEAD nuevamente y deshará su deshacer anterior y agregará otra confirmación para eso. O puede hacer git reset --hard HEAD~. Pero ten cuidado con este último ya que borra datos.

HEAD~ significa el commit antes de la actual CABEZA

+5

No, no borra datos. Simplemente mueve su puntero de sucursal. La confirmación anterior aún existe, y puede ver su ID mirando 'git reflog' (f.ex.). Recibirá basura recolectada en dos meses (configuración predeterminada), pero puede desactivar la recolección automática de basura, y luego * cada commit * you * ever * made existirá para siempre en ese repositorio. Simplemente no son accesibles a través de sucursales. Pero siempre puedes encontrarlos usando 'git fsck', y he publicado una receta para examinar todos los commits que usan eso. –

3

¿Qué hay de revertir la operación de revertir?

registro Ver git y obtener la etiqueta hash del mal de reversión:

git log -5

Después, realice revertir la revertirse:

git revert

+5

-1 esto creará otro compromiso, que no es realmente deseado aquí – CharlesB

Cuestiones relacionadas