Branch for clear reasons: features, hotfixes. Don’t do branches from either of these.
On my last project when the new dev lead arrived we had two dozen open branches in the repo; I was alarmed, I’ve seen projects go out of business losing control of versions. He spoke convincingly about “branch hygiene” and “technical debt.” He said merging in the branches was a high priority. Eight months later we had 130 branches.
When he was merging a feature I’d written he ended up merging in a sixth branch-from-branch. This wasn’t careful work, this was compulsive. He’d write two or three lines and then another branch. It was insane.
Minimize branching. Don’t Ever branch from a feature or hotfix branch. Fewer is better.