Earlier quoted context omitted.
There are two things people mean when they say Git is complicated. Some people mean that Git's model is complicated, which what you're talking about. I actually find its model very simple, some people find it complicated, but at any rate, I certainly think Git and Mercurial have comparable complexity in the model. What most people mean, though, is that Git's UI is complicated. To be blunt, I think this is simply obje…
Your complaints seem like a very indirect way to get what you want. Perhaps it's git's fault for making these possibilities, but I didn't even know they exist. If you want to revert/reset a file, why don't you just use the reset command? That seems like a more direct way than using checkout. If you want to create a new branch, why not use "git branch branch-name"? As another said, the "git checkout -b branch-name" is…
Because that's what git tell you to do when you run "git status"
# (use "git checkout -- ..." to discard changes in working directory)