From: Junio C Hamano Date: Wed, 22 Nov 2023 01:08:51 GMT Subject: Re: Orphan branch not well-defined? Message-ID: In-Reply-To: Craig H Maynard 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/20190130094831.10420-9-pclouds@gmail.com/ *2* https://lore.kernel.org/git/CABPp-BF3_p3+fmQcWYEu2z3J4FfPmDmiMyFiBRXyz8TxKLL7jA@mail.gmail.com/