Git: vuelve al estado de confirmación anterior

Estoy confundido. Quiero volver a una confirmación anterior que identifiqué en "logging de git".

Pero cuando hago "git checkout", no obtengo dicho commit. Nada cambia. Me dice que estoy en el modo HEAD desconectado, pero los files que quiero no están allí.

¿Qué efecto estoy haciendo mal?

MrB

git reset --hard <commit> la página de manual:

Coincide con el tree de trabajo y el índice con el del tree al que se está cambiando. Cualquier cambio en los files rastreados en el tree de trabajo se pierde.

git checkout es para cambiar su directory de trabajo a una twig diferente o confirmar. Esto no mueve la HEAD allí.

NO git reset -hard es PERMANENTE!

Por favor use

 git stash -u 

¡en lugar! Si tienes una pieza de trabajo allí que eliminas por crash, todavía puedes recuperarla. Esto nunca llega a su control remoto a less que elija hacerlo creando una twig y empujándolo hacia arriba.

Además, está en la senda correcta que puede usar git checkout para lograr lo mismo. La syntax es

 git checkout HEAD -- . 

Pero tiene el mismo problema que el git reset --hard . Quédese con el alijo y ahorrará perder su cabello en el futuro.

Respuesta más larga

Las soluciones anteriores revierten todos tus cambios. Sin embargo, usted preguntó cómo deshacerse de algunos de los cambios. Añadiré esto para completarlo.

Para hacer esto, puedes

 git add file1 file2 file3 git stash save --patch 

Ahora se le preguntará qué es exactamente lo que quiere que desaparezca … hasta el nivel de granularidad que tenga. Por lo tanto, puede "rechazar" de manera segura solo algunos cambios en un único file si decide hacerlo.