Branches are cheap, disposable pointers to a commit. Create one per feature or fix and switch between them freely.
git checkout <branch-name> and git checkout -b <branch-name> do the same thing as switch — checkout predates switch and still works, but switch's narrower purpose makes it harder to fat-finger into something destructive.