Git Commit Message Generator
Generate well-formatted Conventional Commits messages with a visual form builder.
About This Tool
The Git Commit Message Generator is a free browser-based tool that helps you compose well-structured commit messages following the Conventional Commits specification. Instead of memorizing the format and typing commit messages from scratch, this tool provides a visual form where you select the commit type, optionally add a scope, write a short description, and include a body or footer as needed. The generated message updates in real time so you can preview exactly what will be committed.
Conventional Commits is a lightweight convention on top of Git
commit messages that provides a standardized format. It works
hand in hand with Semantic Versioning by
tying commit types to version bumps: feat triggers a minor
version bump, fix triggers a patch bump, and a
BREAKING CHANGE footer (or ! after the type) triggers a
major bump. This makes it possible for tools like
standard-version, semantic-release, and
conventional-changelog to automate versioning and changelog
generation based on your commit history.
The tool supports all eleven standard commit types:
feat, fix, docs, style, refactor,
perf, test, build, ci, chore, and
revert. It includes validation that warns you when your
description exceeds 50 characters, starts with an uppercase
letter, or ends with a period — all common style issues that
linters like commitlint would flag. The body field includes
guidance to wrap lines at 72 characters, matching the standard
Git recommendation.
If you are working with Git repositories, you may also find the Git Command Builder useful for constructing complex Git commands, or the .gitignore Generator for creating ignore files. For comparing changes before committing, check out the Diff Viewer.
All processing happens entirely in your browser. No data is sent to any server — your commit messages, project names, and scope information never leave your machine. This makes it safe to use with proprietary codebases and sensitive project details.
How to Use
- Select a commit type from the dropdown (e.g.
feat,fix,docs). Each type includes a short description of when to use it. - Optionally enter a scope to indicate the area of the codebase affected (e.g.
auth,api,ui). - Write a short description of the change in 50 characters or fewer. The character counter turns yellow at 40 and red at 50.
- Optionally add a body to explain the motivation behind the change. Keep lines at 72 characters or fewer for best readability in
git log. - Toggle Breaking change if this commit introduces an incompatible API change. Add a description of what breaks and how to migrate.
- Optionally add a footer for references like
Closes #123orRefs #456. - Click Copy or press Ctrl+Shift+C to copy the generated commit message to your clipboard. Paste it into your terminal with
git commit -m "...".
Popular Commit Message Examples
FAQ
What is Conventional Commits?
Conventional Commits is a specification for writing standardized commit messages. It defines a format of `type(scope): description` with optional body and footer sections. It is designed to work with Semantic Versioning and enables automated changelog generation, version bumping, and release management through tools like semantic-release and standard-version.
What commit types are available?
The tool supports 11 types: feat (new feature), fix (bug fix), docs (documentation), style (formatting), refactor (code restructuring), perf (performance), test (tests), build (build system), ci (CI/CD), chore (maintenance), and revert (reverting changes). The type determines what kind of version bump is triggered when using automated versioning.
Why is the description limited to 50 characters?
The 50-character limit is a widely adopted Git best practice. It ensures that commit messages display well in `git log --oneline`, GitHub/GitLab commit lists, and other tools that truncate long lines. The tool warns you but does not enforce the limit, since some projects use different thresholds.
What does the breaking change toggle do?
Toggling 'Breaking change' adds a `!` after the type/scope in the header (e.g., `feat!: ...`) and optionally appends a `BREAKING CHANGE:` footer. This signals to automated tools that the commit introduces an incompatible API change, which triggers a major version bump under Semantic Versioning.
Why wrap body lines at 72 characters?
Git recommends wrapping commit message body lines at 72 characters. This ensures the message is readable in terminals using `git log`, which typically adds a 4-space indentation. With 72 characters of content plus 4 spaces of indent, the total width stays under 80 columns, fitting standard terminal widths.
Is my data safe?
Yes. All processing runs entirely in your browser using JavaScript. No data is sent to any server. Your commit messages, scopes, and descriptions never leave your machine. You can verify this by checking the Network tab in your browser's developer tools while using the tool.
Can I use this with commitlint or semantic-release?
Yes. The messages generated by this tool follow the Conventional Commits specification, which is the format expected by commitlint (with the @commitlint/config-conventional preset), semantic-release, standard-version, and conventional-changelog. You can copy the generated message and use it directly in your Git workflow.
Related Tools
Git Command Builder
Build Git commands visually. Select operations, options, and flags to construct the correct git command with explanations.
.gitignore Generator
Generate .gitignore files by selecting languages, frameworks, and IDEs. Combine multiple templates instantly.
Diff Viewer
Compare two texts side by side with line-by-line and character-level diff highlighting.
Conventional Commits Linter
Validate commit messages against the Conventional Commits specification. Check type, scope, description, and body format.
Changelog Generator
Generate CHANGELOG.md from Conventional Commits. Group by type, add version headers, and export in Keep a Changelog format.
Git Branch Name Generator
Convert ticket numbers and titles into clean git branch names with configurable naming conventions.
Code of Conduct Generator
Generate CODE_OF_CONDUCT.md files from Contributor Covenant, Citizen, Django, or custom templates with customizable sections.