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 commitBenefits
- 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