La forma más sencilla es utilizar git rebase
. Suponga que tiene esa configuración:
A -- B -- C -- C1 -- C2 # right branch
\
\-- D -- C3 -- C4 # wrong branch
Quiere mover el cambio C3, C4 a la rama derecha.
git checkout -b new_wrong_branch D
git checkout wrong_branch
git rebase D --onto right_branch
git checkout right_branch
git merge right_branch wrong_branch
git branch -d wrong_branch
git branch rename new_wrong_branch wrong_branch
Ahora el escenario es
A -- B -- C -- C1 -- C2 -- C3 -- C4 # right_branch
\
\ -- D # wrong_branch
Entonces tienes que impulsar tus resultados con fuerza (SI nadie se ha sincronizado con tu repositorio remoto todavía):
git push -f remote:right_branch