I have a local branch for day-to-day dev work in git. My workflow is:
Another option would be to push "local_branch" to the "origin" repo, but to it's own branch in that repo (not "master"), i.e.:
git push origin local_branch:local_backup
Then when you are ready to make another backup (and after you've been doing some work and rebasing) just delete the backup branch from the origin repo before you push it out again:
git push origin :local_backup
<=== deletes the branch from origin
git push origin local_branch:local_backup
This way you won't run into problems pushing "local_branch" after it has been rebased from "origin/master".
And if deleting your backup branches makes you nervous (until after you've finally committed your work to "master"), you could always keep pushing to a new branch with a new name (e.g. "local_backup1", "local_backup2", etc).