Okay. If I'm on a branch (say
working), and I want to merge in the changes from another branch (say
master), then I run the command
git-merge master while on the
working branch, and the changes get merged in without rebasing the history at all. If I run
git-rebase master, then the changes in
master are rebased to be put on the top of my
working branch. But what if I want to merge in the changes from
master but rebase my changes in
working to be on top? How do I do that? Can it be done?
I could run
git-rebase working on my
master branch to put my changes on top in the
master branch, but I'd like to be able to do that in my
working branch, and I have no idea how. The closest that I can think of doing is creating a new branch from
master and then rebase
working's changes on top of that, but then I'd have a new branch instead of altering the
This question is tagged with
~ Asked on 2011-09-04 04:14:57
You've got what
rebase does backwards.
git rebase master does what you're asking for — takes the changes on the current branch (since its divergence from master) and replays them on top of
master, then sets the head of the current branch to be the head of that new history. It doesn't replay the changes from
master on top of the current branch.
~ Answered on 2011-09-04 04:18:29
Another way to look at it is to consider
git rebase master as:
Rebase the current branch on top of
Here , '
master' is the upstream branch, and that explain why, during a rebase,
theirs are reversed.
~ Answered on 2012-11-22 15:01:00