Git Commit Message Generator

A new feature
0/50
Lines longer than 72 chars are wrapped automatically.
Filling this adds ! after the type and a BREAKING CHANGE: footer.
Heads up
  • Add a short summary — that's what shows up in `git log --oneline`.
Runs entirely in your browser. Nothing leaves the page — useful when the body of the commit quotes internal table names, ticket links, or anything you'd rather not paste into a server.

The Git Commit Message Generator builds a Conventional Commits-formatted message from a few structured inputs — type, scope, summary, body, breaking change, issue refs — and lays it out the way Git expects: a 50-char subject line, a blank line, a 72-char-wrapped body, and trailers for `BREAKING CHANGE:` and `Refs:`. The output is the same shape Conventional Commits, Commitizen, semantic-release, and the standard Git 50/72 rule converge on, so it works whether your team auto-generates changelogs from commits or just wants `git log --oneline` to stay readable. No AI, no network — the formatter assembles the message deterministically in your browser, and flags anything that doesn't pass the 50/72 rule without rewriting it for you.

Built by Bob QA by Ben Shipped

How to use

  1. 1

    Pick the commit type. `feat` for a new feature, `fix` for a bug fix, `refactor` for changes that aren't either, `docs` / `style` / `perf` / `test` / `chore` / `build` / `ci` / `revert` for the rest. Each option shows its meaning next to the name.

  2. 2

    Optionally add a scope — the part of the codebase the change touches, in parentheses. `auth`, `api`, `ui`, `parser`, `deps`. Keep it short, lowercase, kebab-case if multi-word.

  3. 3

    Write the summary. This is the subject line — what shows up in `git log --oneline`, GitHub PR lists, and `git blame`. Aim for ≤50 characters, imperative present (`add login redirect`, not `added login redirect`), and no trailing period.

  4. 4

    Optionally add a body. Explain the *why* — the tradeoffs, the alternatives you didn't pick, anything reviewers should know. Each line wraps to 72 characters automatically; paragraphs and list items (`-` or `*`) are preserved.

  5. 5

    Optionally describe a breaking change. Filling this field adds a `!` after the type and a `BREAKING CHANGE:` footer — the convention `semantic-release` and similar tools read to bump the major version.

  6. 6

    Optionally add issue refs — `#123`, `#456`, or external tracker IDs like `JIRA-7`. They're normalized and appear as a `Refs:` footer.

  7. 7

    The assembled message updates as you type. Hit Copy to grab it, then paste into `git commit -m "…"` (or `git commit` and paste the whole multi-line message into the editor).

Frequently asked questions

Ratings & Reviews

Rate this tool

Sign in to leave a written review.
Loading reviews…