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
next prev parent 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).