Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does git push -u mean?

Tags:

git

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

branch.<name>.merge 

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 ?

like image 341
Frankie Ribery Avatar asked Apr 06 '11 04:04

Frankie Ribery


People also ask

What is git push and pull?

git pull is one of many commands that claim the responsibility of 'syncing' remote content. The git remote command is used to specify what remote endpoints the syncing commands will operate on. The git push command is used to upload content to a remote repository. The git fetch command can be confused with git pull .

What is git commit vs push?

Difference Between git commit and git push in Git. The basic difference between git commit and git push is that the scope of the git commit is the local repository, and that of git push is the remote repository. The git push command always comes after executing the git commit command.

What does git push force do?

The --force option for git push allows you to override this rule: the commit history on the remote will be forcefully overwritten with your own local history. This is a rather dangerous process, because it's very easy to overwrite (and thereby lose) commits from your colleagues.

Is it safe to git push?

It is no secret that git push --force is dangerous. Without question, it will replace the remote with your local changes—and it won't stop to check if that will override any changes pushed up to remote in the process. When working in a shared repository, this spells danger for even the most careful developer team.


2 Answers

"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.

like image 69
Rafe Kettler Avatar answered Oct 02 '22 06:10

Rafe Kettler


This is no longer up-to-date!

Push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the traditional behavior, use:    git config --global push.default matching  To squelch this message and adopt the new behavior now, use:    git config --global push.default simple  When push.default is set to 'matching', git will push local branches to the remote branches that already exist with the same name.  Since Git 2.0, Git defaults to the more conservative 'simple' behavior, which only pushes the current branch to the corresponding remote branch that 'git pull' uses to update the current branch. 
like image 45
Peter Piper Avatar answered Oct 02 '22 05:10

Peter Piper