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.
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
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
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