Thread (3 messages) flat view 3 messages, 3 authors, 2016-06-15

Re: Terminology question about remote branches.

From: Lars Hjemli <hidden>
Date: 2016-06-15 22:43:26

On 8/4/07, David Kastrup [off-list ref] wrote:
Now I think that I basically have no chance figuring this out on my
own sufficiently well to be able to improve the documentation.
Remote-tracking branch:
  A local copy of a branch in another repository. This kind of branch
  cannot be updated by 'git-commit' but only by 'git-fetch' (hence
  indirectly by 'git-pull' and 'git-remote update'). If you try to
  'git-checkout' a remote-tracking branch, you will get a detached HEAD.

Local branch:
  A branch to which you may commit changes. Optionally, the branch can be
  configured to "follow" one of your remote-tracking branches. This means
  that a 'git-pull' without arguments (when your local branch is checked
  out), will automatically 'git-fetch' and then 'git-merge' the remote-
  tracking branch.

Example:

Your local branch 'master' is setup to "follow" 'refs/remotes/origin/master'.
So if you do this:

$ git checkout master
$ git pull

Then the 'git pull'-command will do this:

$ git fetch -f origin master:remotes/origin/master
$ git merge remotes/origin/master


The magic setup that makes this happen is the following lines in .git/config:

[remote "origin"]
        url = git://git.kernel.org/pub/scm/git/git.git
        fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]
        remote = origin
        merge = refs/heads/master


Was this helpful?

-- 
larsh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help