News for hackers. Stuff that matters.
Re:Highlights from Git 2.23 by kissgyorgy on Saturday August 17, 2019 @03:18AM (#20722682)
This is still far from ideal. "git switch" and "git checkout" should not be able to create a new branch. It clearly should be the "git branch" subcommand's responsibility, because "You want to do something with a branch". It would be two commands to create and checkout a new branch, but less confusion. You can use your git alias anyway. But a shortcut for "git branch -c" would be better if you want to keep the "create and switch" shortcut IMO.
Re:Highlights from Git 2.23 by int0x80 on Saturday August 17, 2019 @05:37AM (#20723085)
I disagree. I found git checkout -b very convenient an intuitive way to say "create and checkout this branch".

For git branch -c one could say that the "branch" command should not do checkout-business.

Re:Highlights from Git 2.23 by sametmax on Saturday August 17, 2019 @07:54AM (#20723540)
I should be a separate cmd. It's such a common operation, and it's a huge noob trap.
Re:Highlights from Git 2.23 by nemetroid on Saturday August 17, 2019 @09:33AM (#20723948)
The reason it's a noob trap isn't that the two operations should be separate.

The issue is that "-b" (mnemonic for "branch") in no way suggests that it creates a new branch. Since checkout does so many different things, it would be reasonable to guess that -b limits the command to perform the "branch" action (i.e. switch to a branch). Git-switch doesn't have this issue.

Re:Highlights from Git 2.23 by wodenokoto on Saturday August 17, 2019 @04:12AM (#20722851)
But I want to switch to my new branch. One of these commands will have to do double duty.

Either switch/checkout will create or branch will switch.

I don’t see why choosing one for double duty is inherently worse than the other.

But I do consider your proposal of `git branch —create` as a poor command for create and switch branch.

Re:Highlights from Git 2.23 by masklinn on Saturday August 17, 2019 @08:57AM (#20723795)
FWIW in their proposal `git branch -c` would be `git branch --checkout` not `git branch --create`, which is what `git branch <name>` does.

The `git checkout -b` and `git switch -c` docs specifically note that they're shortcuts for going a git branch then a git checkout/switch.

Re:Highlights from Git 2.23 by nemetroid on Saturday August 17, 2019 @09:24AM (#20723899)
> It clearly should be the "git branch" subcommand's responsibility, because "You want to do something with a branch".

The git switch subcommand's description is "Switch branches", so clearly it, too, is intended to handle a subset of the cases where you want to do something with a branch. Switching to a branch that doesn't already exist is a special case of git-switch's main purpose, and you have to be explicit about it. Further, when you create a new branch, you just about always want to switch to it (because while you can do some things with a branch that's not checked out, most commands are designed to work on the currently-checked-out branch), so what's the point in forcibly separating the commands?

> But a shortcut for "git branch -c" would be better if you want to keep the "create and switch" shortcut IMO.

Strongly disagree. In Git, creating a branch is a much smaller action than changing the state of your checkout. It makes much more sense to have the branch creation as the side effect than the other way around.

Re:Highlights from Git 2.23 by mewse on Saturday August 17, 2019 @05:03AM (#20722980)
I'm sure it's not what they were intending, but 'switch' used to be a pretty common term for a light, flexible branch.

And all of git's branches are pretty light and flexible, at least compared against the branches of the previous generations of version control systems..

But yeah. That's definitely not what they were intending.