I often have at least 3 remote branches: master, staging and production. I have 3 local branches that track those remotes.
Updating all my local branches is tedious:
git fetch --all
git rebase origin/master
git co staging
git rebase origin/staging
git co production
git rebase origin/production
git-up automates this. From the README:
git pull merges by default, when it should really rebase. You can ask it to rebase automatically instead, but it still won't touch anything other than the currently checked-out branch. If you're tracking a bunch of remote branches, you'll get non-fast-forward complaints next time you push.
Solve it once and for all: