Great question — answering as the UphillTech team:
The ProGit book has a very good explanation : Tracking Branches Checking out a local branch from a remote branch automatically creates what is called a tracking branch. Tracking branches are local branches that have a direct relationship to a remote branch. If you’re on a tracking branch and type git push , Git automatically knows which server and branch to push to. Also, running git pull while on one of these branches fetches all the remote references and then automatically merges in the corresponding remote branch. When you clone a repository, it generally automatically creates a master branch that tracks origin/master. That’s why git push and git pull work out of the box with no other...
Full answer by Assaf Lavie: https://stackoverflow.stackexchange.com/a/4693780 (CC BY-SA 4.0).
Need it done for your business? UphillTech.