Merging an upstream repository
03 Apr 2018
In your local clone of your forked repository, you can add the original GitHub repository as a “remote”. (“Remotes” are like nicknames for the URLs of repositories - origin is one, for example.) Then you can fetch all the branches from that upstream repository, and rebase your work to continue working on the upstream version. In terms of commands that might look like:
Change the current working directory to your local project.
Add the remote, call it “upstream”:
git remote add upstream https://github.com/jdoe/coolapp.git
Show all remote repositories in verbose mode
git remote -v
Fetch all the branches of that remote into remote-tracking branches, such as upstream/master:
git fetch upstream
List all remote branches:
git branch -r
Check out the branch you wish to merge to. Usually, you will merge into master.
git checkout master
Pull the desired branch from the upstream repository. This method will retain the commit history without modification.
git pull upstream master
If there are conflicts, resolve them. For more information, see “Addressing merge conflicts”.
Commit the merge.
Review the changes and ensure they are Okay.
Push the merge to your GitHub repository.
git push origin master