This is a high level of the branching strategy the company I work at and I utilise: There are story branches which are basically features and the branch looks like this:
story/{PROJECT_INITIALS}-{ISSUE_NUMBER}-{ISSUE_NAME}.
So using My Awesome Project and issue or ticket number 134 (jira, gitlab, github, notepad) and the name could be Create landing page:story/MAP-134-create_landing_page.
Then this story gets split into smaller sub-tasks which are as trivial as possible. So, following the same convention as above, a sub-task would look like this:sub-task/MAP-135-create_navbar_item.
Defects would look like this:defect/MAP-136-fix_padding_on_nav_items.
master/ is the release branch.story/ and defect/ branches come off master.sub-task/ branches only come off story/ branches.