Keep a GitHub Fork Updated

A typical flow when contributing to open source software on GitHub is:

For example, one time:

git clone git@github.com:croaky/dotfiles.git
cd dotfiles
git remote add upstream git@github.com:thoughtbot/dotfiles.git

On each update, from the local forked master branch:

git fetch upstream
git rebase upstream/master

The goal of the rebase is to have a cleaner history if there are local commits in the forked repo.