Reputation: 1445
I am trying to rebase my remote branch onto master, but I want to keep the remote branch pointing to it's commits, just based at a different point in master.
Here is my structure:
A - B - C - D (origin/master)
\
R - S - T (origin/develop)
I would like:
A - B - C - D (origin/master) - R - S - T (origin/develop)
Is such a rebase possible without some sort of merge?
Upvotes: 17
Views: 30238
Reputation: 900
To see more about rebase you can read the manual or write git rebase --help
at your terminal
To solve your problem there is a easy way, following these steps:
git branch -D develop # remove your local develop repository
git fetch //update references
git checkout develop # change to develop branch, but because you deleted,
# this command will download from origin/develop
git rebase -r origin/master # -r is --rebase-merges
After this step you might have some conflicts, so resolve them and git add FILES THAT HAD CONFLICTS
and git rebase --continue
Now check if everything still working after rebase; if yes
git push -f origin develop
Note: Prior to v2.35, there was an option -p
(--preserve-merges
), which had some slight differences to -r
but was similar in spirit and function.
Upvotes: 25
Reputation: 52516
In your context, you will do
git rebase origin/master
git rebase origin/master origin/develop
Official reference: At the beginning
A---B---C topic
/
D---E---F---G master
after do
git rebase master
git rebase master topic
we have
A'--B'--C' topic
/
D---E---F---G master
(Source: https://git-scm.com/docs/git-rebase)
Upvotes: 4