I prefer just using `git switch` because it's easy to remember the flags (and the position of arguments), but you're right, there is a simpler way:
git switch -c some-new-branch-name
git branch -f master HEAD~