Thread (14 messages) 14 messages, 7 authors, 2016-08-11

Re: git pull and merging.

flat view

From: Jakub Narebski <hidden>
Date: 2016-08-11 20:20:53

Aneesh Kumar wrote:
On 12/6/06, Junio C Hamano [off-list ref] wrote:
quoted
"Aneesh Kumar" [off-list ref] writes:
quoted
I have a git.git clone using --use-separate-remote. That means i have
the master branch created by default. Now i need to build git from the
pu branch too. So i created git branch pu remotes/origin/pu.


How how do i track the pu branch using git pull. What i mean is the
master local branch is tracked by default using git pull. Is there a
way to track the local pu branch too.
        $ cat>.git/remotes/origin <<\EOF
        URL: ...kernel.org/pub/scm/git/git.git
        Pull: refs/heads/master:refs/remotes/origin/master
        Pull: refs/heads/next:refs/remotes/origin/next
        Pull: +refs/heads/pu:refs/remotes/origin/pu
        EOF
Or you can do .git/config equivalent:

$ git repo-config remote.origin.url ...kernel.org/pub/scm/git/git.git
$ git repo-config remote.origin.fetch  refs/heads/master:refs/remotes/origin/master
$ git repo-config remote.origin.fetch  refs/heads/next:refs/remotes/origin/next
$ git repo-config remote.origin.fetch +refs/heads/pu:refs/remotes/origin/pu
quoted
Then you would checkout 'pu' by having a matching local branch:

        $ git branch pu remotes/origin/pu
        $ git checkout pu ;# this is your refs/heads/pu
        $ make

Hacking on it can be done in this branch as usual.  When you are
interested in the latest 'pu' from me:

        $ git checkout pu ;# this is your refs/heads/pu
        $ git fetch ;# most of the time git pull would also be fine...

and then:

        $ git rebase remotes/origin/pu

The 'rebase' in the last step is because my 'pu' rewinds freely;
otherwise you would do "git merge remotes/origin/pu" instead.
Okey what i was looking for was a .git/config that will imply as a
part of git pull origin that local

master is to track remotes/origin/master
pu  should track remotes/origin/pu.

I almost felt the branch.<name>.merge was for that.

What is this git-repo-config used for. I am trying to understand

branch.<name>.remote and branch.<name>.merge usage.
Yes it is what branch.<name>.merge is for... and it would work for
any branch _except_ pu, which rewinds frequently, and you should
rebase your changes on top of current version instead of merging.

Still it is useful to add branch.<branch>.remote for pu:

  $ git repo-config branch.refs/heads/pu.remote origin

so you can do just "git fetch" on pu to fetch from origin (well,
"git fetch" would fetch from origin as it is the default even in
absence of branch.<branch>.remote).

If it were any other branch, for example next, you could add

  $ git repo-config branch.refs/heads/next.remote origin
  $ git repo-config branch.refs/heads/next.merge refs/remotes/origin/next

for "git pull" on next branch fo fetch from origin and merge
next branch from origin. 

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help