How to pull remote branch from somebody else's repo
git, git-branch, git-pull, git-remote, github
Solution
git remote add coworker git://path/to/coworkers/repo.git
git fetch coworker
git checkout --track coworker/foo
This will setup a local branch `foo`, tracking the remote branch `coworker/foo`. So when your co-worker has made some changes, you can easily pull them:
git checkout foo
git pull
Response to comments:
Cool :) And if I'd like to make my own changes to that branch, should I create a second local branch "bar" from "foo" and work there instead of directly on my "foo"?
You don't need to create a new branch, even though I recommend it. You might as well commit directly to `foo` and have your co-worker pull your branch. But that branch already exists and your branch `foo` need to be setup as an upstream branch to it:
git branch --set-upstream foo colin/foo
assuming `colin` is your repository (a remote to your co-workers repository) defined in similar way:
git remote add colin git://path/to/colins/repo.git
Problem
I've got a project hosted on GitHub which somebody has forked. On their fork, they've created a new branch "foo" and made some changes. How do I pull their "foo" into a new branch also named "foo" in my repo? I understand they could submit a pull request to me, but I'd like to initiate this process myself. Assume the following: - Because they forked my project, both our repos share the same 'history' - Although GitHub shows their project was forked from mine, my local repository doesn't have any references to this person's project. Do I need to add theirs as a remote? - I don't have a branch called "foo" yet - I don't know if I need to manually create this first. - I definitely want this pulled into a separate branch and not my master.