You have seen this command in many tutorials. Maybe you use it everyday, or every time you push:
$ git push -u origin master
This pushes changes in your local repository up to the
master branch of the remote repository
But do you need to do this every time you push?
-u in this command is a short-hand for
--set-upstream. Using this flag you are basically telling git to automatically link your local master to the remote master. Therefore you only need to do this once. After that you can just write
git pull and
git push on master.
Just remember to do this the first time you create a branch locally and are ready to push it to the remote:
# Create a branch and switch to it $ git checkout -b bugFix # Work on bugFix and then commit the changes $ git add . $ git commit -m "Put some print statements. Found the bug." # Since this is the first time you push to origin $ git push -u origin bugFix
This creates a branch called
bugFix on your remote and sets your local
bugFix branch to track it. So from now on, when you switch to that branch locally, you can just pull and push without any further argument or flag.
If you want to see how your local branches are connected to remote branches, take a look at your repository's config file. The
-u flag sets the merge property of the branch:
./my_repo$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = https://github.com/<your-user-name>/my_repo.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [branch "bugFix"] remote = origin merge = refs/heads/bugFix