threads / discuss / 24519

git pull question

Subject: git pull question

## tl;dr

3 messages between Jul 26, 2010 and Jul 26, 2010.

replies: 2people: 2as markdown or json

Geoff Russell· Jul 26, 2010, 01:56 UTC · lore
Hi,
Assuming I already have a branch called brA

$ git checkout master $ git pull origin refs/heads/brA:brA

The pull here seems to update both the current branch as well as brA? Is this intentional?

Cheers, Geoff.

PS. git is at 1.6.2.3
-- 
6 Fifth Ave,
St Morris, S.A. 5068
Australia
Ph: 041 8805 184 / 08 8332 5069
http://perfidy.com.au
Bradley Wagner· Jul 26, 2010, 03:43 UTC · re: Geoff Russell · lore

Re: git pull question

Show 9 quoted lines
> Hi,
>
> Assuming I already have a branch called brA
>
> $ git checkout master
> $ git pull origin refs/heads/brA:brA
>
> The pull here seems to update both the current branch as well as brA?
> Is this intentional?
I believe this is intentional.

A git pull always pulls into (at least) the currently checked out branch, in your case "master". By adding the <dst> param after the colon in the <refspec> you're saying to go ahead and fast-forward merge the local branch called "brA" if possible.

This is almost equivalent to saying:

git checkout brA git pull origin brA git checkout master git pull origin brA

assuming everything can be fast-forward merged.

Read the the portion of git-pull man entry regarding the <refspec> for a more thorough explanation: http://www.kernel.org/pub/software/scm/git/docs/git-pull.html

However, I'm not entirely clear myself on the meaning of this note in the documentation:

Note You never do your own development on branches that appear on the right hand side of a <refspec> colon on Pull: lines; they are to be updated by git fetch. If you intend to do development derived from a remote branch B, have a Pull: line to track it (i.e. Pull: B:remote-B), and have a separate branch my-B to do your development on top of it. The latter is created by git branch my-B remote-B (or its equivalent git checkout -b my-B remote-B). Run git fetch to keep track of the progress of the remote side, and when you see something new on the remote branch, merge it into your development branch with git pull . remote-B, while you are on my-B branch.

Show 16 quoted lines
>
> Cheers,
> Geoff.
>
> PS. git is at 1.6.2.3
>
> --
> 6 Fifth Ave,
> St Morris, S.A. 5068
> Australia
> Ph: 041 8805 184 / 08 8332 5069
> http://perfidy.com.au
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Geoff Russell· Jul 26, 2010, 03:51 UTC · re: Bradley Wagner · lore

Re: git pull question

On Mon, Jul 26, 2010 at 1:13 PM, Bradley Wagner <bradley.wagner@hannonhill.com> wrote:

Show 13 quoted lines
>> ...
>> $ git checkout master
>> $ git pull origin refs/heads/brA:brA
>>
>> The pull here seems to update both the current branch as well as brA?
>> Is this intentional?
>
> I believe this is intentional.
>
> A git pull always pulls into (at least) the currently checked out
> branch, in your case "master". By adding the <dst> param after the
> colon in the <refspec> you're saying to go ahead and fast-forward
> merge the local branch called "brA" if possible.
Okay.
Show 14 quoted lines
> However, I'm not entirely clear myself on the meaning of this note in
> the documentation:
>
> Note
> You never do your own development on branches that appear on the right
> hand side of a <refspec> colon on Pull: lines; they are to be updated
> by git fetch. If you intend to do development derived from a remote
> branch B, have a Pull: line to track it (i.e.  Pull: B:remote-B), and
> have a separate branch my-B to do your development on top of it. The
> latter is created by git branch my-B remote-B (or its equivalent git
> checkout -b my-B remote-B). Run git fetch to keep track of the
> progress of the remote side, and when you see something new on the
> remote branch, merge it into your development branch with git pull .
> remote-B, while you are on my-B branch.
Yes, I was wondering about this ... I can't see any downside
Geoff.

← back to recent threads