Git Commit Messages
Write commit messages following the Conventional Commits specification.
Format
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
Types
| Type | Purpose |
| ---------- | ------------------------------------------------------- |
| feat | New feature |
| fix | Bug fix |
| docs | Documentation only |
| style | Code style (formatting, no logic change) |
| refactor | Code change that neither fixes a bug nor adds a feature |
| perf | Performance improvement |
| test | Adding or correcting tests |
| build | Build system or external dependencies |
| ci | CI configuration |
| chore | Maintenance tasks |
| revert | Reverts a previous commit |
Rules
- Use imperative mood in description ("add feature" not "added feature")
- Do not end description with a period
- Keep description under 72 characters
- Separate subject from body with a blank line
- Use body to explain what and why, not how
Breaking Changes
Add ! after type/scope or include BREAKING CHANGE: in footer:
feat(api)!: remove deprecated endpoints
BREAKING CHANGE: The /v1/users endpoint has been removed.
Scope
Optional. Use to specify area of change (e.g., api, ui, auth, db).