Git Commit Message Linter

Analyze your Git commit messages against Conventional Commits standards and get automatic fixes.

Commit Message
Paste your commit message below to validate it against Conventional Commits standards.
Quick Templates
Start with a template
Conventional Commits Guide
Learn about the Conventional Commits specification

What is Conventional Commits?

Conventional Commits is a specification for adding human and machine-readable meaning to commit messages. It provides an easy set of rules for creating an explicit commit history, which makes it easier to write automated tools on top of.

Format Structure

type(scope): description

[optional body]

[optional footer(s)]

type: The kind of change (required)

scope: What section of codebase (optional)

description: Brief summary (required)

body: Detailed explanation (optional)

footer: Breaking changes, issue refs (optional)

Examples

Simple
feat: add user authentication
With Scope
fix(api): resolve timeout issue
Breaking Change
feat(auth)!: change login endpoint

BREAKING CHANGE: endpoint changed from /login to /auth/login
With Body & Footer
fix(database): prevent connection leak

Added proper connection pool cleanup.
Improved error handling for timeout cases.

Closes #456

Commit Types

โœจfeatA new feature
๐Ÿ›fixA bug fix
๐Ÿ“šdocsDocumentation only changes
๐Ÿ’ŽstyleChanges that do not affect the meaning of the code
โ™ป๏ธrefactorA code change that neither fixes a bug nor adds a feature
โšกperfA code change that improves performance
โœ…testAdding missing tests or correcting existing tests
๐Ÿ—๏ธbuildChanges that affect the build system or external dependencies
๐Ÿ‘ทciChanges to CI configuration files and scripts
๐Ÿ”งchoreOther changes that don't modify src or test files
โชrevertReverts a previous commit

Benefits

  • Automatically generate CHANGELOGs
  • Automatically determine semantic version bump
  • Communicate nature of changes to teammates
  • Trigger build and publish processes
  • Make it easier for people to contribute

Best Practices

  • Keep the subject line under 100 characters
  • Use lowercase for type and description
  • Don't end the subject line with a period
  • Use imperative mood ("add" not "added")
  • Add blank line between subject and body
  • Wrap body at 72-100 characters
  • Use body to explain what and why vs. how

About Git Commit Message Linter

Conventional Commits give a commit history structure that tools can read: a type like feat or fix, an optional scope, a concise subject, and an optional body and footer. That structure is what powers automated changelogs, semantic version bumps, and fast history scanning. This linter checks a commit message against that specification and tells you exactly where it deviates.

Paste a message and the tool flags the common problems โ€” a missing or unrecognized type, a subject that is too long, a capitalized or period-terminated subject, a missing blank line before the body, or a malformed breaking-change footer. Where the fix is mechanical, it rewrites the message into a compliant form so you can copy a clean version straight back into your editor or amend.

It is a useful learning aid as well as a checker. By showing what was wrong and what the corrected message looks like, it helps a team converge on a consistent style before wiring the same rules into a commit-msg hook or CI gate. Everything runs locally in your browser; commit text is never uploaded.

How to use Git Commit Message Linter

  1. Paste your commit message

    Drop the full commit message, including any body and footer, into the input area.

  2. Review the findings

    The linter lists each rule that passed or failed against the Conventional Commits specification.

  3. Apply the suggested fix

    Where the issue is mechanical, copy the auto-formatted message the tool produces.

  4. Use it in your workflow

    Adopt the corrected format and, if you like, enforce the same rules with a commit-msg hook or CI check.

Frequently asked questions