threads / discuss / 19637

git checkout -b -t

Subject: git checkout -b -t

## tl;dr

4 messages between Jun 2, 2009 and Jun 2, 2009.

replies: 3people: 4as markdown or json

John Tapsell· Jun 2, 2009, 14:49 UTC · lore
Hey all,
  I've become the "guy to ask about git" in my company and people are
always getting into a mess with git.  So in turn I try to get git to
be a more friendly.  Today someone had a problem.  Basically they had
done:

$ git checkout -t origin/mybranch fatal: git checkout: --track and --no-track require -b

So they do exactly what it tells them: $ git checkout -b -t origin/mybranch Switched to a new branch "-t"

doh

How can we make this less easy for people to shoot themselves in the foot? The behavior of -t has changed recently iirc, so I think that problem has gone away?

Also: $ git branch -D -t

Doesn't work.  I can see why, but it does make my life difficult :-D
John
Junio C Hamano· Jun 2, 2009, 15:04 UTC · re: John Tapsell · lore

Re: git checkout -b -t

John Tapsell <johnflux@gmail.com> writes:
Show 11 quoted lines
> $ git checkout -t origin/mybranch
> fatal: git checkout: --track and --no-track require -b
>
> So they do exactly what it tells them:
> $ git checkout -b -t origin/mybranch
> Switched to a new branch "-t"
>
> doh
>
> How can we make this less easy for people to shoot themselves in the
> foot?
 (1) Explain things in terms of semantics, not in terms of "brainless
     cut&paste" operations.
 (2) Avoid telling them what to do in the error messages, instead why what
     they did is an error.

E.g. "--track/--no-track does not make sense if you are not creating a new branch" would be far less confusing in this particular case.

Matthieu Moy· Jun 2, 2009, 15:05 UTC · re: John Tapsell · lore

Re: git checkout -b -t

John Tapsell <johnflux@gmail.com> writes:
> $ git branch -D -t
>
> Doesn't work.
Not really answering the question, but "git branch -D -- -t" should work.
-- 
Matthieu
Michael J Gruber· Jun 2, 2009, 15:25 UTC · re: John Tapsell · lore

Re: git checkout -b -t

John Tapsell venit, vidit, dixit 02.06.2009 16:49:
Show 19 quoted lines
> Hey all,
> 
>   I've become the "guy to ask about git" in my company and people are
> always getting into a mess with git.  So in turn I try to get git to
> be a more friendly.  Today someone had a problem.  Basically they had
> done:
> 
> $ git checkout -t origin/mybranch
> fatal: git checkout: --track and --no-track require -b
> 
> So they do exactly what it tells them:
> $ git checkout -b -t origin/mybranch
> Switched to a new branch "-t"
> 
> doh
> 
> How can we make this less easy for people to shoot themselves in the
> foot?  The behavior of -t has changed recently iirc, so I think that
> problem has gone away?

git 1.6.1 and above contains DWIMery which, in the case above, would automatically behave like

git checkout -t origin/mybranch -b mybranch

which complains in case 'mybranch' exists already, without pointing at '-b', though. Do you think this creates a new type of head aches for your patients?

Show 7 quoted lines
> 
> Also:
> $ git branch -D -t
> 
> Doesn't work.  I can see why, but it does make my life difficult :-D
> 
> John

← back to recent threads