I know how to make a new branch that tracks remote branches, but how do I make an existing branch track a remote branch?
I know I can just edit the .git/config
file, but it seems there should be an easier way.
I know how to make a new branch that tracks remote branches, but how do I make an existing branch track a remote branch?
I know I can just edit the .git/config
file, but it seems there should be an easier way.
Make sure you run :
to be able to push trouble free
I believe that in as early as Git 1.5.x you could make a local branch
$BRANCH
track a remote branchorigin/$BRANCH
, like this.Given that
$BRANCH
andorigin/$BRANCH
exist, and you've not currently checked out$BRANCH
(switch away if you have), do:This recreates
$BRANCH
as a tracking branch. The-f
forces the creation despite$BRANCH
existing already.--track
is optional if the usual defaults are in place (that is, the git-config parameterbranch.autosetupmerge
is true).Note, if
origin/$BRANCH
doesn't exist yet, you can create it by pushing your local$BRANCH
into the remote repository with:Followed by the previous command to promote the local branch into a tracking branch.
Given a branch
foo
and a remoteupstream
:As of Git 1.8.0:
Or, if local branch
foo
is not the current branch:Or, if you like to type longer commands, these are equivalent to the above two:
As of Git 1.7.0:
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.See also: Why do I need to do `--set-upstream` all the time?
For 1.6.x, it can be done using the git_remote_branch tool:
That will cause Git to make
foo
trackupstream/foo
.1- update your local meta-data using : git fetch --all
2- show your remote and local branches using : git branch -a , see the following Screenshot
3- switch to target branch , that you want to linked with the remote: using
git checkout branchName
example :
4- Link your local branch to a remote branch using:
git branch --set-upstream-to nameOfRemoteBranch
N.B : nameOfRemoteBranch : to copy from the output of step 2 " git branch -r "
Example of use:
I use the following command (Suppose your local branch name is "branch-name-local" and remote branch name is "branch-name-remote"):
If both local and remote branches have the same name, then just do the following: