Update: As of Git 1.7.0, converting existing branches to tracking branches got a whole lot easier.
git push now has a
-u flag which will set up tracking based on a successful push.
$ git push -u hub master Branch master set up to track remote branch master from hub.
For reference, here’s the original post:
There are two ways to convert an existing branch to a remote tracking branch, using
git config or directly editing the .git/config file.
In both of these examples, the local and remote branches are named “master”. The remote repository is “hub”.
git config commands
$ git config branch.master.remote hub $ git config branch.master.merge refs/heads/master
git config commands do is add the following to .git/config, editing the file manually has the same result.
[branch "master"] remote = hub merge = refs/heads/master
What would be nice is an additional config command, branch.<name>.track, which would split a full refspec, sending the relevant parts to the remote and merge commands.