What branch name conventions do you use?

What, if any, conventions do you apply to the naming of branches in order to create notional groups of branches? I'm trying to validate a hypothesis to help shape a plugin idea.

This is a question for users of Stash; but StashDev might as well chip in, although I already have some idea of how you work. :-)

Do you, for example, name branches to reflect the release you intend them to be part of? Do you name them according to the software component or feature they apply to? Something else?

6 answers

1 accepted

1 votes
Jason Hinch Atlassian Team Nov 04, 2012

Hi David,

I find that there are 2 main naming convention styles within git. Hyphen separated or slash separated. GitFlow uses the latter to separate groups of branches:



Many of the cross product teams within Atlassian use this convention. Product teams within Atlassian seem to use the hyphen approach:



I find a lot of Git experts like to use the slashes approach as it equates to directories organising branches on the filesystem

I know that the Confluence team has adopted the following approach and follows an "Issue/Story driven development" workflow:

Short lived branches are created for every issue/story using the following naming convention:






Git flow standards:


 - master

 - develop

 - feature/XXX (encourage JIRA issue key)

 - release/XXX (encourage JIRA issue key if applicable, e.g., a Deploy ticket, or a single feature)

 - hotfix/XXX (encourage JIRA issue key)

For our development/code review/pull request branches we are using a scheme of

DEV-(username)-(Jira issue key)-(optional desc/keyword)

We have a centralized/non-forking workflow.

We encourage developers to push their in-work features to the centralized repo. We enforce feature branches pushed to the server follow the standard of: <username>/<branchname>. We recommend the branch be named as the issue ID, but that is not part of our process.

We do not differentiate between hotfix, bugfix or feature.

We do not use master past the first commit. It makes the initial clone faster.

Releases each have their own short uniquely named branch without a slash. We try to keep these names to 6 characters or less.

We work on a mercurial repo, branch-per-version, branch-per-issue and development on default.

Versions are semver, vMajor.minor.patch.
Issue branches are Jira codes.

Suggest an answer

Log in or Join to answer

Stay in touch

Be the first to know what's trending on Atlassian Community