Git Commit Message Builder

Write conventional commits with type, scope, and breaking change notation

Guides you through the Conventional Commits format — type (feat, fix, docs, chore and more), optional scope, imperative subject, body, breaking-change footer, and issue references — and outputs a correctly formatted commit message with a live header length check.

What is the Conventional Commits format?

It is a lightweight convention of `type(scope): subject`, with an optional body and footers. The structured prefix lets tools derive changelogs and semantic-version bumps automatically from your history.

Conventional commits without memorising the spec

Conventional Commits turn your git history into something tools can read — auto-generated changelogs and automatic semantic-version bumps — but only if every message follows the format precisely. This builder walks you through type, scope, subject, body, breaking changes, and issue references, then assembles a message that parses cleanly.

How it works

The output follows the type(scope): subject header rule. The type classifies the change (feat and fix drive minor and patch bumps; docs, refactor, chore and others document intent). An optional scope in parentheses names the affected area. The subject is your imperative one-liner. When you flag a breaking change, the builder appends ! to the header and adds a BREAKING CHANGE: footer — both recognised signals for a major-version bump. Issue numbers become a Closes #123 footer. A live counter checks the header length against the 50/72-character guidance so the first line stays readable in tools and git log.

Tips and example

  • Write the subject as a command: “add retry to upload”, not “added” or “adds”.
  • Use a scope to disambiguate large repos: fix(auth): handle expired refresh token.
  • Put the why in the body and the what in the diff — reviewers can already see the code change.
  • For a reverting commit, choose the revert type and reference the original commit hash in the body.