On Thu, Jan 31, 2019 at 7:50 AM Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote: > > On Wed, Jan 30, 2019 at 4:49 AM Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: > > "git checkout" doing too many things is a source of confusion for many > > users (and it even bites old timers sometimes). To remedy that, the > > command will be split into two new ones: switch and > > something-to-checkout-paths. The good old "git checkout" command is > > still here and will be until all (or most of users) are sick of it. > > [...] > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > > --- > > diff --git a/Documentation/git-switch.txt b/Documentation/git-switch.txt > > @@ -0,0 +1,236 @@ > > +SYNOPSIS > > +'git switch' [<options>] [--guess] <branch> > > +'git switch' [<options>] --detach [<start_point>>] > > +'git switch' [<options>] [[-c|-C|--orphan] <new_branch>] [<start_point>] > > What does the third form mean when all optional arguments (that is, > _all_ arguments) are omitted? "git switch" is smart (or too dumb to be clever): $ git switch fatal: nothing to do > Nit: I realize you inherited this from git-checkout documentation, but > can you use '-' rather than '_', as in <start-point>, <new-branch>, to > be consistent with other documentation, such as git-branch. A quick grep shows <some-thing> seems to win over <some_thing>. Yeah. > > +EXAMPLES > > +To check out commit "HEAD~3" for temporary inspection or experiment > > +without creating a new branch: > > + > > +------------ > > +$ git switch --detach HEAD~3 > > +HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits' > > +------------ > > + > > +If it turns out whatever you have done is worth keeping, you can > > +always create a new name for it (without switching away): > > + > > +------------ > > +$ git switch -c good-surprises > > +------------ > > I had to go re-read git-branch documentation to understand why you > recommended "git switch -c <new-branch>" (or even why this mode > exists) over plain "git branch <new-branch>". I wonder if the > difference between the two deserves a bit more discussion here and > above in the description of the -c/-C options. There is this bit in git-branch, will that help? -- 8< -- NOTES ----- If you are creating a branch that you want to checkout immediately, it is easier to use the "git switch" command with its `-c` option to create a branch and check it out with a single command. -- 8< -- Otherwise any suggestions are welcome, I guess I could rephrase it a bit like -c <new_branch>:: --create <new_branch>:: Create a new branch named <new_branch> starting at <start_point> before switching to the branch. This is similar to creating a new branch with linkgit:git-branch[1] except that `git branch` does not switch branches. -- Duy