When your git repository deny to be updated from the origin:
If you want to push a new local branch on your remote github repository :
$git push -u origin <local branch name>
Instead of commiting before switching a git branch, you can stash your modifications.
$ git stash
This command save the current state of developpement. You can now switch to another branch.
$ git stash apply
Restore from your last stash
you can also inspect all your stashed state with
$ git stash list
$ git stash show