Subject: Re: DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"

From: Clemens Buchacher <[email-masked]>
Date: Mon, 7 Jun 2010 21:32:26 +0200

On Mon, Jun 07, 2010 at 09:17:25PM +0200, Matthieu Moy wrote:
> Clemens Buchacher <[email-masked]> writes:
> 
> > But this is supposedly a feature which helps users who type "git
> > checkout <branch>" by mistake, when they really wanted to do "git
> > checkout -t <remote>/<branch>".
> 
> Not sure what's the argument here, but aren't the two commands
> equivalent? Do you prefer the second syntax "git checkout -t
> <remote>/<branch>"? It's already a DWIM for "git checkout -b <branch>
> -t <remote>/<branch>", and I find this one far more confusing:
> 
> git checkout    <remote>/<branch> => detaches HEAD
> git checkout -t <remote>/<branch> => creates a local branch automatically

The intent with -t is clear. It is used only when you create a new
branch. Also, you specify the remote branch you're going to create
a new branch from.

"git checkout <branch>", on the other hand, will create a branch
based on a remote branch, even though you neither asked for a new
branch, nor did you specify any remote at all.