My way of avoiding the force push is to create a new branch and continuing work on that new branch and after some stability, remove the old branch that was rebased:
- Rebasing the checked out branch locally
- Branching from the rebased branch to a new branch
- Pushing that branch as a new branch to remote. and deleting the old branch on remote