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.