Update a forked GitHub repository from its source

The unrelated image is of a friend's motorcycle in our makeshift guest room.

Here is how we updated our fork of Ghost-Azure with the original Ghost-Azure repository.

// Clone the fork, enter its directory, and checkout the target branch.
git clone git@github.com:shaunluttin/Ghost-Azure.git  
cd ghost-azure  
git checkout master

// Add the source of the fork as a new remote and fetch it.
git remote add upstream git@github.com:felixrieseberg/Ghost-Azure.git  
git remote fetch upstream

// +++++++++
// Caution: the following technique may be destructive to 
// commit history; that said, it is safe when we know
// what we are doing.
// +++++++++

// Rebase your target branch (e.g. master) onto the upstream/master.
git rebase upstream/master

// Push to complete the process.
git push --force-with-lease  

Some helpful commands along the way:

git branch -vv  
git remote -vv  
git log --oneline --graph --decorate --all -20