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

Re: 'HEAD' is not a commit (according to git-checkout)

From
Junio C Hamano <gitster@pobox.com>
Date
May 24, 2020, 16:15 UTC
Message-ID
<xmqqimglqpga.fsf@gitster.c.googlers.com>
In-Reply-To
<ad267e83-eea0-bb78-d88c-a37a28d04dbe@web.de>
René Scharfe <l.s.r@web.de> writes:
Show 6 quoted lines
> OK, but stepping back a bit and trying to forget what I know about the
> option --track and pretending to see it for the first time, I have to
> ask: Why doesn't it take an argument?  If I check out a raw commit, it
> cannot guess the upstream branch anyway.  So I'd assume this to work:
>
>    git checkout -b new-branch --track=upstream start-point

Assuming that --track option is marked with PARSE_OPT_OPTARG and when the option is given, we internally do a rev-parse of both upstream and start-point and make sure the tip of the "track" is an ancestor of the "start-point", I think it makes sense. That would catch cases like this:

	git checkout --detach origin/master
	... work work work ...
	git checkout -b new-branch --track=origin/master HEAD
On the other hand, some use case might want to go the other way, e.g.
	git checkout --detach origin/master~12
	... work to fix an older bug ...
	git checkout -b new-branch --track=origin/master HEAD

in which case the start-point and the current tip of the tracking branch has no relation other than they share a common ancestor.

So, should we allow a random upstream & start-point combination? It appears to me that as long as they share _some_ common ancestory, it may make sense.

Previous: René ScharfeNext: Jeff King
Message 11 of 16 in “'HEAD' is not a commit (according to git-checkout)”
  1. Dana DahlstromMay 21, 2020
  2. Jeff KingMay 21, 2020
  3. René ScharfeMay 23, 2020
  4. Jeff KingMay 23, 2020
  5. 1/2 checkout: add tests for -b and --trackRené Scharfe, May 24, 2020
  6. Jeff KingMay 27, 2020
  7. René ScharfeMay 28, 2020
  8. 2/2 checkout: improve error messages for -b with extra argumentRené Scharfe, May 24, 2020
  9. Jeff KingMay 27, 2020
  10. René ScharfeMay 24, 2020
  11. Junio C HamanoMay 24, 2020
  12. Jeff KingMay 27, 2020
  13. Junio C HamanoMay 27, 2020
  14. Randall S. BeckerMay 27, 2020
  15. Jeff KingMay 27, 2020
  16. René ScharfeMay 21, 2020

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.