Given a branch foo
and a remote upstream
:
As of Git 1.8.0:
git branch -u upstream/foo
Or, if local branch foo
is not the current branch:
git branch -u upstream/foo foo
Or, if you like to type longer commands, these are equivalent to the above two:
git branch --set-upstream-to=upstream/foo
git branch --set-upstream-to=upstream/foo foo
As of Git 1.7.0:
git branch --set-upstream foo upstream/foo
Notes:
- All of the above commands will cause local branch
foo
to track remote branchfoo
from remoteupstream
. - The old (1.7.x) syntax is deprecated in favor of the new (1.8+) syntax. The new syntax is intended to be more intuitive and easier to remember.
- Defining the upstream will fail with newly created remotes that have not been fetched. In that case run
git fetch upstream
beforehand.
See also: Why do I need to do `--set-upstream` all the time?
from: https://stackoverflow.com/questions/520650/make-an-existing-git-branch-track-a-remote-branch