I've been using git for a while, but still do not understand how to deal with feature branches.
When you develop in a feature branch in a strictly local manner everything makes sense. You commit, merge upstream, rebase on master and finally push everything.
Things change with feature branch being pushed to a remote early on. Now you can't squish, rebase, etc. You simply can't change history for other devs. Sure, that's a correct behaviour.
So no pushing to remote? Everything is just local? A filesystem dies and your branch goes with it? One random deletion of
.git... This doesn't sound correct.