What is “git remote add …” and “git push origin master”?

Quite often, Git and Ruby on Rails looks like magic… such as in the first chapter of Ruby on Rails 3 Tutorial book, it talks about Git:

git remote add origin [email protected]:peter/first_app.git
git push origin master

And it pretty much says “it just works” without saying too much about what they are and start talking about branching. Searching on the Internet shows that git remote add is to add a “short name”, such as origin, and it can be any name as well, which is like an alias to a URL.

And origin is the usual path of where the remote repository points to (in http://git-scm.com/book/en/Git-Basics-Working-with-Remotes under “Adding Remote Repositories”).

So why is the URL not git://[email protected]/peter/first_app.git, but in the other syntax — what syntax is it? Why must it end with .git? I tried not using .git at the end and it works too. If not .git, what else can it be? The git in [email protected] seems to be a user account on the Git server?

Also, why does it need to be so verbose to use git push origin master? Can’t the default be origin and master? I found that the first time, the origin master is needed, but after a small edit and commit, then git push is all it needs (no need origin master). Can somebody who knows what is going on give some details?

Sometimes it feels like a lot of magic without explanation… and sometimes the person using it is so confident and when asked why, can’t explain it, and respond with something like “that’s the way it is”. Sometimes very practical and pragmatic. It is not bad to be practical, but probably not practical to the point to not know what is going on.

6 Answers
6

Leave a Comment