Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just forked a project in Github. I made modifications and sent a pull request. The owner merged my fork with the main project and after that he made some modifications. So for now my fork is not updated with the main project. I miss the modifications he made after merging my pull request. How can I update my fork with the Main project? Is there a way to do that in the web interface?


share|improve this question
I write a simple instruction. check out at here: – Youngjae Mar 12 '14 at 5:28
There's now an official doc which is well done: – Andre Miras Apr 4 '14 at 13:06
up vote 29 down vote accepted

By design, forking a project creates a separate repo that is not updated when the original repo changes. However, git makes it pretty easy to update manually.

You need the help of a 3rd repository (your local copy suffices). There are 3 repos:

  • "Upstream": The upstream project's repository on Github.
  • "Origin": Your fork's repository on Github
  • "Local": Your local repository on your computer. I will assume you created it by cloning Fork using git clone, and that everyone is using branch master.

Assuming currently "Origin" and "Local" are in the same state, and "Upstream" is ahead by 1 or more commits (the merge and any subsequent changes).

First add the upstream project as a Git remote:

git remote add upstream

Then pull (meaning fetch and then merge automatically) the changes from the remote's master branch into your local repository's current (master) branch:

git pull upstream master

Now your local repository is in sync with upstream. Finally, push your local repo to your Github fork:

git push origin master

Now everything is in sync.

share|improve this answer
Thanks a lot.. it's a shame that this may not be possible to make that in the web interface.. – bAN Aug 1 '12 at 9:44
This is indeed possible on the web interface: – thSoft Jan 30 '13 at 10:22
Yeehaw! I had been tearing my hair out trying to find this explicit info. Thanks for sharing! – pepoluan Dec 17 '14 at 3:22
... but please take also a look at the answer's comments, proving that Resync via web is not the best option as it pollutes repository – usr-local-ΕΨΗΕΛΩΝ Dec 29 '14 at 15:22
what do you do when it says "already up to date" after the pull, but it is obviously not? (there are files I changed all in one subdirectory, and I should have no differences in any other file, but I do) – roberto tomás Apr 7 '15 at 15:32

You need to add a remote (see GitHub help) and pull from that new remote.

git remote add mainProject
git pull mainProject master
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .