Sometimes you need to keep a linear (non-branching) history of your code commits. If you are working on a branch for a while, this can be tricky if you have to do a regular git pull since that will record a merge with upstream.

[alias]
  up = pull --rebase

This will update with your upstream source, then reapply any work you have not pushed on top of whatever you pulled down.

To use:

git up