The Conventional Branch specification defines a naming convention that brings order to your development workflow — whether you're working solo or with a team.
Inspired by Conventional Commits, Conventional Branch standardizes Git branch names so they are human-readable, machine-parseable, and automation-friendly.
Branch names follow this structure:
<type>/<description>
| Type | Purpose | Example |
|---|---|---|
feature/ or feat/ |
New features | feature/add-login-page |
bugfix/ or fix/ |
Bug fixes | fix/header-bug |
hotfix/ |
Urgent fixes | hotfix/security-patch |
release/ |
Release preparation | release/v1.2.0 |
chore/ |
Non-code tasks | chore/update-dependencies |
Trunk branches (main, master, develop) do not require a prefix.
We currently support documentation in multiple languages:
English · 简体中文 · 繁體中文 · 日本語 · Deutsch · Español · Français · Polski · Português (Brasil) · Русский
If your language is not listed, we welcome contributions to add it!
Enforce the specification automatically in your project:
| Tool | Description |
|---|---|
| commit-check | CLI tool to check branch names, commit messages, and more |
| commit-check-action | GitHub Action for automated branch name validation |
| VSCode Conventional Branch | VSCode extension for branch name auto-completion |
If you find this useful, consider giving it a ⭐️ on GitHub! Your support helps others discover and adopt the spec.
Let others know your project follows the Conventional Branch spec. Add this badge to your repository README:
[](https://github.com/conventional-branch/conventional-branch)We welcome contributions from the community!
Whether it's fixing a typo, improving documentation, or proposing a new branch naming convention — please check out our contributing guidelines.
No contribution is too small. Thank you for helping us grow! 💙