git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jeff King <peff@peff.net>
Date
Jun 8, 2010, 07:52 UTC
Message-ID
<20100608075241.GA3166@coredump.intra.peff.net>
In-Reply-To
<20100608072958.GA24302@localhost>
On Tue, Jun 08, 2010 at 09:29:58AM +0200, Clemens Buchacher wrote:
Show 17 quoted lines
> Let's assume the user "just wants to check out branch X." Such a
> use case has been mentioned previously in this thread. So they say
> "git checkout X", and voila, they get what they wanted.
> 
> It did what they meant it to do. Everybody is happy. But not for
> long.
> 
> Because the next time they "just want to check out branch X," they
> will remember, it's time for "git checkout X." But what's this?
> This is not what they wanted. It does not have the latest changes
> on branch X! Didn't they do the same thing they did last time?
> 
> No they did not, because last time they _created a branch_.
> Eventually, if they are lucky, they will learn in #git that they
> were supposed to "git merge <remote>/X." And they will think "WTF?
> Why do I have to _merge_? And what's this business about remotes?
> Why is git is so complicated?"

FWIW, I made this same complaint at the GitTogether, and the response I got is that git does help the user along through the second "checkout". You get something like:

  $ git checkout foo
  Branch private set up to track remote branch foo from origin.
  Switched to a new branch 'foo'
  ... time passes ...
  $ git checkout foo
  Switched to branch 'foo'
  Your branch is behind 'origin/foo' by 5 commits, and can be fast-forwarded.

Now you can certainly argue that a clueless user won't know what to do with those messages, but it is not entirely true that git leaves them without any advice. Perhaps we could lessen the "wtf" moment in your example above by making that advice better.

-Peff
Previous: Miles BaderNext: Clemens Buchacher
Message 32 of 34 in “DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"”
  1. Clemens BuchacherJun 5, 2010
  2. Sverre RabbelierJun 5, 2010
  3. Clemens BuchacherJun 5, 2010
  4. Sverre RabbelierJun 5, 2010
  5. Clemens BuchacherJun 5, 2010
  6. Nicolas PitreJun 5, 2010
  7. Jeff KingJun 6, 2010
  8. Clemens BuchacherJun 6, 2010
  9. Jacob HelwigJun 6, 2010
  10. Clemens BuchacherJun 6, 2010
  11. Sverre RabbelierJun 6, 2010
  12. Jacob HelwigJun 6, 2010
  13. Clemens BuchacherJun 7, 2010
  14. Jan KrügerJun 7, 2010
  15. Clemens BuchacherJun 7, 2010
  16. Johan HerlandJun 6, 2010
  17. Matthieu MoyJun 6, 2010
  18. Clemens BuchacherJun 6, 2010
  19. Miles BaderJun 7, 2010
  20. Clemens BuchacherJun 7, 2010
  21. Matthieu MoyJun 7, 2010
  22. Clemens BuchacherJun 7, 2010
  23. Bruce StephensJun 7, 2010
  24. Michael J GruberJun 8, 2010
  25. demerphqJun 8, 2010
  26. Michael J GruberJun 8, 2010
  27. Miles BaderJun 8, 2010
  28. Clemens BuchacherJun 8, 2010
  29. demerphqJun 8, 2010
  30. Matthieu MoyJun 8, 2010
  31. Miles BaderJun 8, 2010
  32. Jeff KingJun 8, 2010
  33. Clemens BuchacherJun 8, 2010
  34. Paolo BonziniJun 7, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.