git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Francis Moreau <francis.moro@gmail.com>
To: Johan 't Hart <johanthart@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Question about "git pull --rebase"
Date: Sun, 15 Nov 2009 15:34:23 +0100	[thread overview]
Message-ID: <m2my2noo0g.fsf@gmail.com> (raw)
In-Reply-To: <4AFF3D4D.7000308@gmail.com> (Johan t. Hart's message of "Sun, 15 Nov 2009 00:29:17 +0100")

Johan 't Hart <johanthart@gmail.com> writes:

> 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

  reply	other threads:[~2009-11-15 14:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-14 20:39 Question about "git pull --rebase" Francis Moreau
2009-11-14 23:16 ` Nanako Shiraishi
2009-11-15 14:31   ` Francis Moreau
2009-11-14 23:29 ` Johan 't Hart
2009-11-15 14:34   ` Francis Moreau [this message]
2009-11-15 19:47     ` Johan 't Hart
2009-11-15 20:18       ` Junio C Hamano
2009-11-15 20:32         ` Johan 't Hart
2009-11-16 12:00           ` Francis Moreau
2009-11-16 12:17   ` Francis Moreau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2my2noo0g.fsf@gmail.com \
    --to=francis.moro@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=johanthart@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).