Lo que sigue es una traducción hecha por mí de una parte de "man git-reset", es útil por ejemplo cuando estamos en una rama local y hacemos git pull y tenemos un conflicto y en el caso de que nuestros cambios locales no nos interesen:
$ git pull (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard (2)
$ git pull . topic/branch (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD (4)
1. Intentar actualizar desde el upstream resultó en montón de conflictos; vos no estás listo para perder un montón de tiempo en mergear ahora, entonces decides hacer esto más tarde.
2. "pull" no ha hecho el merge commit, entonces "git reset --hard" que es sinónimo de: "git reset --hard HEAD" limpia el desorden desde el índice en el working tree.
3. Mergear el topic-branch en el branch actual resultó en un fast-fordward.
4. Pero decidiste que el topic- branch no está listo para abrirlo al público aún. "pull" o "merge" siempre dejan el tip original del branch actual en ORIG_HEAD, entonces haciendo reset hard hacia este va a dejar tu archivo de índice y el working tree de nuevo en ese estado, reseteando el tip del branch a ese commit. Qué es el archivo índice de git?
Comentarios del archivo (2)
mrot web · 13 de julio de 2019
Muchas gracias, fué de mucha ayuda. Un abrazo.
Gastón Ramos · 8 de enero de 2020
Me alegro mrot!