TODO: what happens if you're not on a branch?
git rev-parse --abbrev-ref HEAD
TODO: what if there isn't one?
git rev-parse --abbrev-ref --symbolic-full-name @{u}
TODO: will this also show changes in upstream we don't have?
[[ "git diff HEAD@{u} | wc -c
" -eq "0" ]]
[[ "`git status --porcelain | grep -v '^[?][?]' | wc -c `" -eq "0" ]]