He visto muchos enfoques diferentes para descartar cambios/revertir a una confirmación anterior usando Git. Normalmente puedo descubrir qué funciona para mi situación, pero en el proceso me he confundido bastante con los diferentes enfoques. Más recientemente intenté deshacer algunos cambios de nombre de archivo y no importa cuánto intente git checkout
las versiones anteriores de los archivos, aún no pude recuperar mis archivos anteriores.Manera correcta de descartar cambios en Git
Estoy buscando aclaraciones sobre qué enfoque utilizar y por qué. Aquí está mi entendimiento de algunos enfoques. Me doy cuenta de que la respuesta puede ser muy contextual, pero me gustaría tratar de determinar qué contextos requieren qué enfoques.
1) git checkout -- .
- Se utiliza para la comprobación de la versión más reciente de los archivos, se sobreponen a los archivos de edad, pero no afectará eliminado, cambiado de nombre o nuevos archivos.
2) git stash save --keep-index
seguido por git stash drop
- stashes archivos no comprometidos, a continuación, los deja caer por completo. Buen enfoque si ha confirmado cambios que desea conservar y cambios no confirmados/no supervisados que desea descartar.
3) git reset --hard
- borra todo desde la última confirmación, incluyendo el archivo cambia el nombre, supresiones y adiciones.
Ésta es mi actual comprensión de mis opciones. ¿Hay algún cambio que harías en mis explicaciones? Tampoco estoy seguro de cuándo usaría un git revert
en lugar de los comandos anteriores.
mensajes Fuente:
- Can't seem to discard changes in Git
- How do I discard unstaged changes in Git?
- GIT Discard any changes I've made to a branch
¿Qué -u hacer? Realmente no quiero llenar mi stash stack con un código que no necesito. –
No se preocupe por llenar su escondite. '-u' almacena archivos no rastreados además de los rastreados. Le permite comportarse como lo hace el reinicio. –