Quite often, Git and Rails looks like magic... such as in the first chapter of Rails 3 Tutorial book, it talks about Git:
git remote add origin git@github.co
The .git at the end of the repository name is just a convention. Typically, on git servers repositories are kept in directories named project.git. The git client and protocol honours this convention by testing for project.git when only project is specified.
git://git@github.com/peter/first_app.git is not a valid git url. git repositories can be identified and accessed via various url schemes specified here. git@github.com:peter/first_app.git is the ssh url mentioned on that page.
git is flexible. It allows you to track your local branch against almost any branch of any repository. While master (your local default branch) tracking origin/master (the remote default branch) is a popular situation, it is not universal. Many a times you may not want to do that. This is why the first git push is so verbose. It tells git what to do with the local master branch when you do a git pull or a git push.
The default for git push and git pull is to work with the current branch's remote. This is a better default than origin master. The way git push determines this is explained here.
git is fairly elegant and comprehensible but there is a learning curve to walk through.