Subject: Re: Question about "git pull --rebase"

From: Francis Moreau <[email-masked]>
Date: Sun, 15 Nov 2009 15:31:06 +0100

Nanako Shiraishi <[email-masked]> writes:

> Quoting Francis Moreau <[email-masked]>
>
>> Let's say I'm on a branch called 'foo'.
>> ...
>>     $ git pull --rebase origin master:foo
>
> With this command line, you are asking:
>
>  1) Please first fetch master from origin and update the local 
>     'foo' with it, but please fail if this doesn't fast forward;
>
>  2) If the first step was successful, please rebase the current 
>     branch on top of that commit.
>
> If your current branch 'foo' doesn't fast forward, the first step 
> should fail, and that is the failure you saw.
>
> Your request doesn't make any sense. The first step would succeed 
> only when your 'foo' doesn't have anything to replay on 'master' 
> from origin, and the second step either isn't executed (when 'foo' 
> has some commits), or it doesn't do anything (when 'foo' doesn't 
> have any commit).
>
>>     $ git pull --rebase origin master
>
> With this command line, you are asking:
>
>  1) Please first fetch master from origin, but don't store it anywhere;
>
>  2) Then on top of that fetched commit, please rebase the current branch.
>
> That is a much saner request.

I see thanks.

Actually I've been confused by the following part of the git-pull man
page:

    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 it sounds that both of the pull commands were equivalent whereas
they're not.

-- 
Francis