See local commits not yet pushed to remote
git config --global alias.unpushed "diff origin/$(git name-rev --name-only HEAD)..HEAD --name-status"
git unpushed
Script that creates an "unstable" branch (if one does not exist) and commits all changes to it.
if [ -z "`git branch | grep unstable`" ]; then
git checkout -b unstable