Reputation: 135416
I have (commits were created in alphabetical order)
origin/topic A-B-C-D-W-X
topic A-B-C-D-Y-Z
Is there a way i can get my topic
branch to look like
A-B-C-D-W-X-Y-Z
without introducing a merge commit?
Ordinarily I'd just do
$ git checkout topic
$ git fetch origin
$ git merge --ff-only origin/topic
But since Y
and Z
were committed after W
and X
, a fast forward will not work.
I suspect some clever rebasing or cherry picking might work but I can't wrap my head around it :{
Upvotes: 13
Views: 5191
Reputation:
As an alternative to mamapitufo's answer, you can also do the following, which will give you the exact same result:
git fetch origin
git rebase origin/topic topic
The last topic
parameter is optional if you already have it checked out.
Upvotes: 7
Reputation: 454
If you already have topic
checked out and origin/topic
fetched which is tracking origin/topic (sounds like you do), you could just:
git rebase
I gave mamapitufo an up vote.
Upvotes: 3
Reputation: 4810
You can try with:
git checkout topic
git pull --rebase origin topic
Check the fetch man page notes about the rebase option.
I would recommend using something like git-smart, which will do a fast forward (which is faster) when possible, and if not, then a rebase. It will also stash local changes if you have any and give you a summary of the remote changes that were pulled.
Upvotes: 13