Keeping Upstream and Working git Repos In Sync

This tutorial is intended for git beginners who need to sync up their working repo with changes made to the upstream repo. Cloning repos within collaboration platforms such as gitlab will not be part of this tutorial.


For the purposes of this project, we will use as the upstream repository. Create a clone of the project, and then clone your github repo to your dev environment.

At this point, the “origin” remote should be your working github repo of “activipy”. We need to add a “root” repo that upstreams to since we want to make sure that we merge any merge/pull requests created by others before we submit our own merge/pull request.

Run the following to set up the “root” remote:

git remote add root
git fetch root

For the sake of illustration, let’s pretend that while we were coding our contributions there pull requests accepted and added to the “root” repo. We need to merge those changes with ours before we submit our merge request. To do that, run the following:

git merge remotes/root/master

In the best case, our changes are simply fast-forwarded and everyone is happy. The more likely scenario is we end up with a “merge” commit. The worst case is we have conflicting changes. In that case, resolve all conflicts and follow directions printed on the screen to complete the merge.

At this point, git push your master branch to “origin/master” and you’re ready to submit a merge/pull request.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.