Every time I start a project, a little later I realize, this must be checked into git. Then I get into a futile attempt to 'git push -u origin master' to my GitHub repository that does not exist. I have the expectation that my 'git push' should work like a POST and create the repository. It obviously does not. My question: Is there a good solid reason why do I have to go to git and create a bare repository and then push my files. Why is this a required step. Thanks.
You can create repos through the terminal with the Github API.
Take a look at the response here