Gastón Ramos

Blog personal

← Volver al blog

Git tip: Deshacer un merge o pull

Recuperado del archivo original de WordPress.

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

También puede interesarte

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!

Los comentarios históricos se conservan como archivo. Para conversar hoy, podés escribirme.