Re: Terminology question about remote branches.
- From
- Lars Hjemli <lh@elementstorage.no>
- Date
- Aug 4, 2007, 13:07 UTC
- Message-ID
- <8c5c35580708040607ya186edcg89fbc90587b64d68@mail.gmail.com>
- In-Reply-To
- <85tzrfh3yg.fsf@lola.goethe.zz>
On 8/4/07, David Kastrup <dak@gnu.org> 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/masterWas this helpful?
-- larsh