Format Structure
Every commit message follows this strict format:<type>- A valid conventional commit type (always in English)<emoji>- The matching emoji for visual identification<description>- Imperative mood description (“Add feature”, not “Added feature”)
Example Commits
Commit Types and Emojis
GitWhisper uses the following approved commit types with their corresponding emojis:| Type | Emoji | Description |
|---|---|---|
feat | ✨ | New feature |
fix | 🐛 | Bug fix |
docs | 📚 | Documentation changes |
style | 💄 | Code style changes (formatting, whitespace, etc.) |
refactor | ♻️ | Code refactoring (no new features or fixes) |
test | 🧪 | Adding or updating tests |
chore | 🔧 | Build process or auxiliary tool changes |
perf | ⚡ | Performance improvements |
ci | 👷 | Continuous Integration/Deployment changes |
build | 📦 | Build system or dependency changes |
revert | ⏪ | Revert a previous commit |
The commit type and emoji always remain in English, even when using GitWhisper’s multi-language support. Only the description is translated to your chosen language.
Formatting Rules
GitWhisper enforces strict formatting rules based on the implementation incommit_utils.dart:86-91:
1. Imperative Verb
Always use imperative mood:- ✅ “Add user authentication”
- ✅ “Fix login validation”
- ✅ “Update documentation”
- ❌ “Added user authentication”
- ❌ “Fixed login validation”
- ❌ “Updated documentation”
2. Capitalization
The first word of the description must be capitalized:- ✅
feat: ✨ Add dark mode toggle - ❌
feat: ✨ add dark mode toggle
3. Concise Descriptions
Keep descriptions concise, preferably under 50 characters:- ✅
fix: 🐛 Resolve token refresh bug - ⚠️
fix: 🐛 Resolve the bug where the authentication token was not being refreshed properly when the user session expired
4. Additional Context
Optional context must be on the same line, comma-separated:- ✅
fix: 🐛 Fix login validation, handle empty input - ❌ Multiple line commit bodies (unless grouping related changes)
5. Single vs Multiple Commits
GitWhisper only generates multiple commit messages if changes are truly unrelated: Related changes (single commit):Multi-Language Support
When using non-English languages, the commit structure adapts: English:Disabling Emojis
If you prefer conventional commits without emojis, you can configure GitWhisper to use the standard format:Best Practices
Consistency matters: The conventional commit format makes your git history searchable and enables automated tools like changelog generators and semantic versioning.