Sync a fork of a Github repo with upstream

Page content

How to sync a fork of a Github repo with the upstream repo

  1. Change into the directory with your forked repo and list remotes

    git remote -v
    
    origin	git@github.com:jeremysj/fedy.git (fetch)
    origin	git@github.com:jeremysj/fedy.git (push)
    
  2. Add the upstream as a remote

    git remote add upstream https://github.com/fedy/fedy.git
    
  3. Verify the new upstream

    git remote -v
    
    origin	git@github.com:jeremysj/fedy.git (fetch)
    origin	git@github.com:jeremysj/fedy.git (push)
    upstream	https://github.com/fedy/fedy.git (fetch)
    upstream	https://github.com/fedy/fedy.git (push)
    
  4. 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
    
    > remote: Counting objects: 75, done.
    > remote: Compressing objects: 100% (53/53), done.
    > remote: Total 62 (delta 27), reused 44 (delta 9)
    > Unpacking objects: 100% (62/62), done.
    > From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      master     -> upstream/master
    
  5. Check out your fork’s local master branch.

    git checkout master
    
    > Switched to branch 'master'
    
  6. 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
    
    > Updating a422352..5fdff0f
    > Fast-forward
    >  README                    |    9 -------
    >  README.md                 |    7 ++++++
    >  2 files changed, 7 insertions(+), 9 deletions(-)
    >  delete mode 100644 README
    >  create mode 100644 README.md
    
  7. Push your changes

    git push origin master