On Thu, Jan 31, 2019 at 1:24 AM Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote: > On Thu, Jan 31, 2019 at 12:29 AM Duy Nguyen <pclouds@xxxxxxxxx> wrote: > > 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 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 > > But does it need to be this way? Does it make a good user-experience? > I, personally, find it confusing to see that it can accept no > arguments. An alternative, perhaps more consistent with UX elsewhere: > > $ git switch > fatal: missing branch argument > > or something. Let me clarify by saying that I don't understand why the third form is documented as validly accepting no arguments given that a no-argument invocation is an error. That is, I would expect the third form of the synopsis to say: 'git switch' [<options>] (-c|-C|--orphan) <new_branch> [<start_point>]