git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Terminology question about remote branches.

From
Jeff King <peff@peff.net>
Date
Aug 4, 2007, 12:02 UTC
Message-ID
<20070804120243.GB9716@coredump.intra.peff.net>
In-Reply-To
<854pjfin68.fsf@lola.goethe.zz>
On Sat, Aug 04, 2007 at 12:55:43PM +0200, David Kastrup wrote:
> A local branch is one with a local branch head.  In contrast, checking
> out a remote branch, while possible, leaves one with a detached head.
Yes, if by "remote branch" you mean a "remote tracking branch".
> "remote-tracking" basically means that git-pull will update the branch
> according to changes in the remote repository.

A "remote tracking branch" is a branch in refs/remotes/* that is updated by _git-fetch_ (which is in turn called by git-pull) to track a remote's position of a branch.

A local branch which tracks a remote branch (I don't recall seeing the phrase "remote-tracking" -- where did this come from?) has the correct magic in .git/config to pull from a specific remote branch when 'git-pull' is given without arguments.

> Creating a branch using git-branch or git-checkout will always create
> a local branch which may or may not be remote-tracking according to
> the --no-track or --track options.

Yes, although again, I think calling it a "remote-tracking branch" to mean "a local branch that tracks a remote branch" is confusingly similar to the more common "remote tracking branch" to mean "a branch in refs/remotes that track's a remote repository's idea of a branch".

Show 6 quoted lines
> So there are basically three types of branches in a repository that I
> can see:
> 
> local branch, not remote-tracking
> local branch, remote-tracking
> remote branch, remote-tracking

No, the remote branch is not remote-tracking in the sense that you defined above; it is not meant to be pulled into.

I think you are confused by two uses of the word "track". In one case, we mean that git-fetch will remember the remote's idea of a branch in refs/remotes/<remote>/<branch>. In another, we mean that a local branch will default to pulling from a particular (remote,branch) combination.

> So the terminology seems fuzzy at the moment, and my attempt to clear
> it up might not be the preferred way of doing it.

Yes, it is very fuzzy. Using "track" for the concept of a local branch defaulting to a particular (remote,branch) pair for git-pull is, I think, more recent and less used. If there were another term for this, it might be more clear.

-Peff
Previous: David KastrupNext: David Kastrup
Message 2 of 46 in “Terminology question about remote branches.”
  1. David KastrupAug 4, 2007
  2. Jeff KingAug 4, 2007
  3. David KastrupAug 4, 2007
  4. Lars HjemliAug 4, 2007
  5. David KastrupAug 4, 2007
  6. Lars HjemliAug 4, 2007
  7. David KastrupAug 4, 2007
  8. David KastrupAug 4, 2007
  9. Lars HjemliAug 4, 2007
  10. David KastrupAug 4, 2007
  11. Lars HjemliAug 4, 2007
  12. Jeff KingAug 5, 2007
  13. Julian PhillipsAug 4, 2007
  14. David KastrupAug 4, 2007
  15. Julian PhillipsAug 4, 2007
  16. David KastrupAug 4, 2007
  17. Theodore TsoAug 4, 2007
  18. David KastrupAug 5, 2007
  19. Jeff KingAug 5, 2007
  20. David KastrupAug 5, 2007
  21. Jeff KingAug 5, 2007
  22. David KastrupAug 5, 2007
  23. Jeff KingAug 5, 2007
  24. Jakub NarebskiAug 4, 2007
  25. SeanAug 4, 2007
  26. David KastrupAug 4, 2007
  27. SeanAug 4, 2007
  28. David KastrupAug 4, 2007
  29. Jeff KingAug 5, 2007
  30. Jeff KingAug 5, 2007
  31. Steffen ProhaskaAug 5, 2007
  32. Jeff KingAug 5, 2007
  33. David KastrupAug 5, 2007
  34. Jeff KingAug 5, 2007
  35. David KastrupAug 5, 2007
  36. Jeff KingAug 5, 2007
  37. Theodore TsoAug 5, 2007
  38. David KastrupAug 5, 2007
  39. Randal L. SchwartzAug 5, 2007
  40. SeanAug 5, 2007
  41. Jeff KingAug 5, 2007
  42. Junio C HamanoAug 5, 2007
  43. Steffen ProhaskaAug 5, 2007
  44. Julian PhillipsAug 5, 2007
  45. David KastrupAug 5, 2007
  46. Julian PhillipsAug 5, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.