Найпростіший спосіб - використання git rebase
. Припустимо, у вас є такий параметр:
A -- B -- C -- C1 -- C2 # right branch
\
\-- D -- C3 -- C4 # wrong branch
Ви хочете перемістити зміни C3, C4 до правої гілки.
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
Тепер установка
A -- B -- C -- C1 -- C2 -- C3 -- C4 # right_branch
\
\ -- D # wrong_branch
Тоді вам доведеться підштовхувати свої результати з силою (ЯКЩО ще ніхто не синхронізував ваш віддалений репо):
git push -f remote:right_branch