Syncing Github Fork with Original Repo

17 February 2018By Rich @Black Sand Solutions
  • Development
  • git
Photo by John Robert Marasigan on Unsplash

How to sync a forked repository with the original and ensure it is up to date.

Intro

I've finally got around to contributing to some Open Souce projects in a more meaningful way than simply making comments and raising issues. I recently had PR accepted into a project, but today I noticed that after some recent breaking changes the example no longer built.

The breaking changes were relatively minor and easy to correct. However the original project had moved on a quite a bit since I made my original fork and I needed to get then back in sync. This post shows the steps involved - and how simple they are.

Add a Remote

List the current configured remote repository for your fork

git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

Specify a new remote upstream repository that will be synced with the fork.

git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

Confirm that the upstream is added

git remote -v

Fetch

Fetch the branches and their respective commits from the upstream repository. Commits to master will be stored in a local branch, upstream/master.

git fetch upstream

Check out your fork's local master branch.

git checkout master

Merge the changes from upstream/master into your local master branch. This brings your fork's master branch into sync with the upstream repository, without losing your local changes.

git merge upstream/master

Update GitHub Fork

Syncing your fork only updates your local copy of the repository. To update your fork on Github you will need to push your changes.

git push  <REMOTENAME> <BRANCHNAME>
All Posts