Re-fork a repository on GitHub

binks picture binks · Nov 5, 2014 · Viewed 7.7k times · Source

I've forked a repository on GitHub and have a quite an extensive commit/pull/push history, which I need to keep.

The owner of the main repository has created some new branches. How can I clone these branches into my forked copy, without deleting the fork and cloning from scratch?

Answer

Sollace picture Sollace · Apr 28, 2015

You'll want to add the other repository as a remote for your own one.

Got to where you've got your repository on your computer and open git Bash and do:

git remote add upstream <address of the repository you cloned from>

Then whenever you need to update your fork just do:

git fetch upstream
git rebase upstream/master

That will reapply whatever changes are on your current branch on top of any changes from the other repository. Note to make things easier I usually leave the master branch on my repository untouched and only work in branches. Then whenever I need to update I just rebase master and rebase my other branches on top of that.

Don't know about getting other branches for upstream though but this answer may be of help: How do I check out a remote Git branch?