What does git push -u mean?


I have two different versions of git. In the 1.6.2 version, git push does not have the -u option. It only appears in the 1.7.x version.

From the docs, the -u is related to the variable


in git config. This variable is described below:

Defines, together with branch.<name>.remote, the upstream branch 
for the given branch. It tells git fetch/git pull which branch to merge.

What is an upstream branch ?


"Upstream" would refer to the main repo that other people will be pulling from, e.g. your GitHub repo. The -u option automatically sets that upstream for you, linking your repo to a central one. That way, in the future, Git "knows" where you want to push to and where you want to pull from, so you can use git pull or git push without arguments. A little bit down, this article explains and demonstrates this concept.

How do I view 'git diff' output with my preferred diff tool/ viewer?

Git: Set local user.name and user.email different for each repo