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