Getting existing git branches to track remote branches
Solution 1:
Use the set-upstream arg:
git branch --set-upstream local-branch-name origin/remote-branch-name
Running the above command updates your .git/config file correctly and even verifies with this output:
"Branch local-branch-name set up to track remote branch remote-branch-name from origin."
EDIT: As martijn said: "In version Git v1.8.0, --set-upstream is deprecated. Use --set-upstream-to instead."
git branch --set-upstream-to local-branch-name origin/remote-branch-name
See this for more information.
Solution 2:
git help remote
should show you what you need to know. I think what you want is
git remote add [remote-name] [remote-url]
# Set a local branch to follow the remote
git config branch.[branch-name].remote [remote-name]
# Set it to automatically merge with a specific remote branch when you pull
git config branch.[branch-name].merge [remote-master]
You can also manually edit .git/config to set these up.
Solution 3:
You can also use this if you want to create a new local branch to track a remote branch:
git checkout --track -b [branch_name] --track origin[or other remote name]/[remote_branch_name]
or even better:
git checkout -t origin/branch_name
Solution 4:
On newer versions of git you can use
git branch --track origin/branch_name
Solution 5:
The --set-upstream flag is deprecated and will be removed.
git branch master --set-upstream-to myupstream/master