Andrew
Andrew

Reputation: 1445

Rebase remote branch onto master while keeping the remote branch updated

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

Answers (2)

Lucas Batista Gabriel
Lucas Batista Gabriel

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

Vy Do
Vy Do

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

Related Questions