Git Branch Name Generator
Convert task descriptions into clean, convention-following git branch names.
Complete branch name with all meaningful words
feature/fix-login-button-not-working-mobilegit checkout -b feature/fix-login-button-not-working-mobileCondensed to the first 8 key words
feature/fix-login-button-not-working-mobilegit checkout -b feature/fix-login-button-not-working-mobileBranch name without the ticket ID
feature/fix-login-button-not-working-mobilegit checkout -b feature/fix-login-button-not-working-mobileAppends today's date for time-boxed work
feature/fix-login-button-not-working-mobile-git checkout -b feature/fix-login-button-not-working-mobile-About Git Branch Name Generator
The Git Branch Name Generator converts plain-English task descriptions or ticket IDs into clean, convention-following branch names. It automatically detects ticket numbers (like PROJ-123 or #456), strips common stop words, and applies your chosen prefix (feature/, fix/, chore/, hotfix/) and separator style. Four variations are produced for every input: a full name using all meaningful words, a condensed short name limited to eight words, a version without the ticket ID, and a date-stamped variant ideal for time-boxed sprints.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Turning a ticket title into a branch name that follows a convention.
- Normalising branch names so a team's history reads consistently.
- Producing a name that survives being typed and tab-completed.
- Including a ticket id in a consistent position.
- Avoiding characters that git or a CI system will object to.
Frequently Asked Questions
- What characters can a git branch name not contain?
- Spaces, `~`, `^`, `:`, `?`, `*`, `[`, backslash, two consecutive dots, a trailing dot, a trailing `.lock`, and it cannot begin or end with a slash. `git check-ref-format` is the authority. That is why generated names are slugified rather than passed through.
- Why put the ticket number in the branch name?
- Because it survives. The branch name appears in the merge commit, in `git log --graph`, and in the PR title, so months later the link between a commit and its issue is still one search away. Extracting it automatically from the description is the point of the ticket-detection step.
- What do the prefixes mean?
- They mirror Conventional Commits: `feature/` for new work, `fix/` for a bug, `chore/` for maintenance, `refactor/`, `docs/`, `test/`, and `hotfix/` for something going straight to production. The slash is not a directory — git refs are flat — but tools display them as a tree.
- Why strip stop words?
- Because a branch name is a label, not a sentence. Dropping "a", "the", "to", "of" and their relatives keeps the name short enough to type and to read in a terminal listing, without losing any of the words that identify what the work actually is.
- Are branch names case-sensitive?
- In git, yes — `Feature/Login` and `feature/login` are different refs. But on macOS and Windows the default filesystem is case-insensitive, so two branches differing only in case collide in `.git/refs` and behave unpredictably. Lower-case throughout avoids the whole problem.
Common errors and gotchas
- Including characters git forbids in a ref name, such as a space, a colon or two consecutive dots.
- Producing a name so long it is awkward in every command and every UI.
- Ending a name with `.lock`, which git reserves.
- Using a slash inconsistently, which makes some branches look like directories and others not.
- Encoding information in the name that belongs in the pull request instead.