The general idea here is to always use a new branch to create new content you want to submit to the original parent repo, known as upstream. In doing so you'll never work directly from your master branch, you'll instead use new branches for each feature or speaker note.
With this idea in mind, your master branch should always be an up to date version of the upstream repo. The following commands will overwrite your master branch every time you run this. Any changes made there will be destroyed and only the most recent changes from upstream/master will remain. This is intentional, but requires that you never make changes to your local master branch.
git remote add upstream git@github.com:REPLACE-YOUR-REPO-NAME/REPLACE-YOUR-REPO-NAME.git
git remote -v
git fetch --all
git reset --hard upstream/master
git push origin master
Lastly I use a shell alias to quickly re-run the commands each time I'm about to create a new branch from master.
alias gup='gco master && git fetch --all && git reset --hard upstream/master && git push origin master'