sábado, 25 de diciembre de 2010

Descartar todos los cambios no pusheados

Para descartar todos los cambios no pusheados (y hacer de cuenta que no se commiteo nada)

git reset --hard origin/master

Explicacion

git reset es el comando que permite cambiar a que commit apunta la rama en la cual se esta trabajando, por ejemplo, el siguiente comando ocasionara que la rama en la que estan trabajando retroceda un commit:

git reset --hard HEAD^

Lo que se hace para deshacer todos los commits que no se pushearon hasta el momento, es asignar a la rama master el mismo commit al que apunta la rama remota: origin/master, esto es lo que hace el comando git reset --hard origin/master
La opcion --hard, sirve para indicar que reinicie tambien el indice y el working tree a esa version.

Deshacer

Si se arrepintieron de descartar sus cambios, lo unico que hay que hacer es restaurar la ref (el puntero de la rama) a su valor original, que se puede hacer asi

git reset --hard HEAD@{1}

HEAD@{1} es el valor que tuvo HEAD antes de que sea cambiado por el otro git reset, eso se puede verificar mas claramente con el comendo git reflog



No hay comentarios:

Publicar un comentario