Generate, validate, and master Git branch naming conventions. Compatible with Git Flow, GitHub Flow, and Trunk-Based workflows.
Get Started →Select a prefix, add ticket and description — get a ready-to-use branch name instantly.
Paste any branch name and get instant feedback on whether it follows conventions.
Learn the three major branching strategies — Git Flow, GitHub Flow, and Trunk-Based.
Copy .gitconfig aliases and Husky pre-push hooks that enforce branch naming on your team.
Git Flow uses long-lived branches with structured naming. The model defines main, develop, feature/*, release/*, hotfix/*, and support/* branches.
feature/TICKET-short-description — branched from developrelease/v1.2.0 — branched from develop, merged into main and develophotfix/TICKET-critical-fix — branched from main, merged into both main and developsupport/v1.1.x — long-lived support branch for older versionsBest for: scheduled releases, versioned software, teams needing strict separation between development and production.
GitHub Flow centers on main (always deployable) with short-lived descriptive branches merged via pull requests.
feature/add-login-page — any new workbugfix/fix-header-alignment — bug fixeschore/update-dependencies — maintenanceBest for: continuous deployment, small-to-medium teams, projects that ship frequently.
Trunk-Based Development uses short-lived branches (< 1 day) from main (the "trunk") with feature flags instead of long-lived branches.
short-descriptive-name — may omit prefix entirely since branches live < 1 dayusername/short-desc — optionally prefixed with authorfeature-flag-name — tied to a feature flag for incremental rolloutBest for: high-velocity teams, CI/CD-heavy projects, teams practicing feature flags and pair programming.
feature/New feature or enhancement
bugfix/Non-urgent bug fix
hotfix/Urgent production fix
release/Release preparation
chore/Maintenance, tooling, deps
docs/Documentation changes
test/Test additions or updates
refactor/Code refactoring
feature/add-login not Feature/Add-Login. Branch names are case-sensitive on most systems; lowercase prevents collisions.add-login-page not add_login_page. Hyphens are the standard separator in Git branch naming.!, @, #, $, %, ^, &, *, (, ). Use only a-z, 0-9, and -.feature/, bugfix/, etc. for readability and tooling support.feature/PROJ-123-add-auth.Add to ~/.gitconfig to create properly-named branches quickly:
Install husky then add this to .husky/pre-push to validate branch names before push:
Yes, if your team uses a ticketing system (Jira, Linear, GitHub Issues), including the ticket number creates a direct link between branches and tasks. Place it right after the prefix: feature/PROJ-123-add-auth. This enables automatic ticket-to-branch linking in most project management tools.
Git allows underscores and uppercase, but they break consistency across teams. On case-insensitive file systems (macOS, Windows), branches like Feature/X and feature/x can collide. Underscores make names harder to read in logs. Stick to lowercase and hyphens for maximum compatibility.
Rename locally with git branch -m old-name new-name. If already pushed, delete the remote: git push origin --delete old-name, then push the new name: git push origin -u new-name. Coordinate with teammates before renaming shared branches.
Vincent Driessen's classic branching model
GitHub's official simple branching workflow
Comprehensive reference for TBD practices
Get notified about Git workflow tips and tool updates.