Standard Github practice when you aren't a direct participant of the original project/repo is to fork the original repo to create your own forked (remote) repo. Next, you'll clone your forked (remote) repo to your local computer so you have a local workspace/repo to make your changes. You'll commit your changes to your local workspace/repo and you'll regularly push the commits from your local repo back to your remote repo.
In order to keep your forked repo in sync with the original repo, you will give your local workspace a 2nd remote repo, i.e. your local repo will track 2 remote repos - your forked repo (setup when you originally created your local workspace/repo) and the original repo (you add manually). You'll pull changes down from the original repo, merge them in with your changes in your local workspace/repo, and then push the merged changes back up to your forked repo.
Github explains it in detail here:
https://help.github.com/articles/syncing-a-fork
The Setup
Before you can sync, you need to add a remote that points to the
upstream repository. You may have done this when you originally
forked. ...
Syncing
There are two steps required to sync your repository with the
upstream: first you must fetch from the remote, then you must merge
the desired branch into your local branch.
...
Fetching
Fetching from the remote repository will bring in its branches and
their respective commits. These are stored in your local repository
under special branches. ...
Merging
Now that we have fetched the upstream repository, we want to merge its
changes into our local branch. This will bring that branch into sync
with the upstream, without losing our local changes. ...