This is a question about the mechanisms of push/pull and keeping your repository up to date when you have outstanding pull requests. The problem with a merge is that it adds the merge commit to your history and so the pull requests get cluttered. The solution (maybe?), I found was to use the rebase command. Setup Code: git remote add Bukkit git://github.com/Bukkit/Bukkit.git Pull in changes from the main line and use Bukkit as the new base for working out merges Code: git pull --rebase Bukkit master Push the updated repository to the github one. Code: git push --force origin master This requires a force push, which is apparently bad practice. Do the people with more experience with Github have any views on this?