Subject: Re: Orphan branch not well-defined?

From: Junio C Hamano <[email-masked]>
Date: Wed, 22 Nov 2023 10:08:51 +0900

Craig H Maynard <[email-masked]> writes:

> Recently I tried creating an orphan branch in an existing repo using git-checkout and git-switch. 
>
> Both commands have an --orphan option.
>
> The results were different:

This is one of the very much deliberate differences between "switch"
and "checkout" (there are others).

The "switch" command was introduced as an experiment to figure out a
better UI choices for one half of "checkout", which deals with
checking out a branch to a working tree (the other half being
"restore", which is about checking out files out of a tree-ish).
The initial round of "switch" proposed to go with the identical
semantics as "checkout" for the "--orphan" option [*1*], but during
review discussion, a concensus was reached that a better behaviour
for creating an entirely new history may be to start from void
[*2*], and that is what is in the experimental command you see.

[Reference]

*1* https://lore.kernel.org/git/[email-masked]/

*2* https://lore.kernel.org/git/[email-masked]/