Re: Question about "git pull --rebase"
- From
- Francis Moreau <francis.moro@gmail.com>
- Date
- Nov 15, 2009, 14:34 UTC
- Message-ID
- <m2my2noo0g.fsf@gmail.com>
- In-Reply-To
- <4AFF3D4D.7000308@gmail.com>
Johan 't Hart <johanthart@gmail.com> writes:
Show 54 quoted lines
> Francis Moreau schreef: >> hello, >> >> Let's say I'm on a branch called 'foo'. >> >> I tried to rebase this branch by using 'git pull --rebase'. >> >> I first tried the following command: >> >> $ git pull --rebase origin master:foo >> remote: Counting objects: 5, done. >> remote: Total 3 (delta 0), reused 0 (delta 0) >> Unpacking objects: 100% (3/3), done. >> From /dev/shm/git/A >> ! [rejected] master -> foo (non fast forward) > > When using a refspec, you usually mean to update a remote tracking > branch, like refs/remotes/origin/master. Internally the refspec > parameter is passed to git fetch, which fast-forwards your local > tracking branch to match the remote branch. > > With this command, you make git clear you want to fast-forward your > branch refs/foo to match the remotes master branch, and then rebase > your current branch on that foo branch. > > Foo probably is also your current branch. So what you probably want is > to fetch the remotes master branch and rebase your current branch foo > on it. You could do it this way: > >> Then I tried: >> >> $ git pull --rebase origin master >> >> which worked. > > This does not update any remote tracking branches, but it will rebase > your foo branch on the remote master branch (which is what you want) > It could also be done with: > > git pull --rebase origin master:origin/master > > This will also update your remote tracking branch > refs/remotes/origin/master to match the master branch on the remote > repo. Your foo branch will then be rebased onto it. > >> >> Reading the man git-pull I would assume the 2 commands are equivalent >> but obviously they're not. >> >> So the question is: why ? > > So, thats why :) They're not the same. Many words... Hope you > understand... I hope I understood it well too..? >
Looks like you did :)
I've been somehow confused by the git-pull man page, which says:
A parameter <ref> without a colon is equivalent to <ref>: when pulling/fetching, so it merges <ref> into the current branch without storing the remote branch anywhere locally
So I thought that both of the commands were equivalent for 'git pull --rebase'.
Thanks for the explanation.
-- Francis