I have the following situation:
clone
(Y) from a main repository(X), because there were many people working on Y we didn't do any rebase
but only merge
s. When we want to deliver(push
) Y to X we would like to do a rebase
in order to have things nice and cleanThe problem is that when doing rebase
we are asked to do all the merges that we already did in the previous merge
steps. Is there a solution to this, beside the one that means actually re-doing the merges?
I expected it to be pretty straightforward since we already solved the conflicting merges.
git merge --squash
is now my preferred way of rebasing after a large amount of work and many merges (see this answer). If the branch you're working on is called my-branch
and you want to rebase from master
then just do the following:
git checkout my-branch
git branch -m my-branch-old
git checkout master
git checkout -b my-branch
git merge --squash my-branch-old
git commit