Git tip: Deshacer un merge o pull

by Gastón Ramos

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?


fast-forward-git-merge