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

Re: [PATCH/RFC] Convenient support of remote branches in git-checkout

From
Karl Hasselström <kha@treskal.com>
Date
Nov 7, 2006, 06:54 UTC
Message-ID
<20061107065400.GA25737@diana.vm.bytemark.co.uk>
In-Reply-To
<200611070225.24956.Josef.Weidendorfer@gmx.de>
On 2006-11-07 02:25:24 +0100, Josef Weidendorfer wrote:
Show 10 quoted lines
> On Tuesday 07 November 2006 01:13, Junio C Hamano wrote:
>
> > Then "git checkout origin/next" would always mean "I want to
> > switch to the branch I use to hack on the branch 'next' Junio
> > has". Do it once and you will get exactly my tip, hack on it,
> > switch out of it and then do it again and you won't lose your
> > previous work but just switch to that branch.
>
> Ah, now I understand your thinking. I admit it has a compelling
> elegance.

I agree. The name is slightly longer than necessary in the common case of only one remote repository, but the reduction of newbie confusion will be worth it. (Non-newbies know how to give the branch any name they want.)

> However. Would it not be confusing for newbies (and not only for
> them) to first reference the remote branch with "origin/next", and
> afterwards, you get your own development branch by using the exactly
> same name?

Not necessarily. As long as they know that there are two kinds of branches, remote and local, it should be perfectly obvious. You check out and modify your local copy of a remote branch, and occasionally pull updates from the remote branch. If there is no local branch corresponding to a certain remote branch, git will make one for you.

> IMHO this kind of aliasing is awkward. When you want to start
> another topic branch on the remote branch, or want to reference the
> remote branch for diffs, you have to explicitly specify
> "remotes/origin/next", making for more typing.

Having more than one local branch for a remote branch is advanced enough that the user should know how to create branches with any name they choose.

But I do agree that calling it "origin/next" the first time you branch, and "remotes/origin/next" subsequent times, is nonintuitive. However, this could be solved by the following message being printed the first time:

  $ git checkout origin/next
  No local branch "origin/next" exists. Creating new local branch
  "origin/next" off of remote branch "remotes/origin/next".
-- 
Karl Hasselström, kha@treskal.com
Previous: Josef WeidendorferNext: Josef Weidendorfer
Message 10 of 14 in “Convenient support of remote branches in git-checkout”
  1. Convenient support of remote branches in git-checkoutJosef Weidendorfer, Nov 6, 2006
  2. Josef WeidendorferNov 6, 2006
  3. Junio C HamanoNov 7, 2006
  4. Josef WeidendorferNov 7, 2006
  5. Junio C HamanoNov 7, 2006
  6. Junio C HamanoNov 7, 2006
  7. Josef WeidendorferNov 7, 2006
  8. Junio C HamanoNov 7, 2006
  9. Josef WeidendorferNov 7, 2006
  10. Karl HasselströmNov 7, 2006
  11. Josef WeidendorferNov 7, 2006
  12. Karl HasselströmNov 7, 2006
  13. Josef WeidendorferNov 7, 2006
  14. Junio C HamanoNov 7, 2006

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.