For git commits, write a single, emoji-prefixed, imperative commit subject. Keep the subject under ~60 characters, no trailing period. Prefer small, focused commits and human-friendly language. Use lowercase after the emoji.
Format:
- Subject line only for simple changes:
EMOJI short imperative summary - Optional body only when it adds necessary context (what/why, not how). Wrap body at ~72 chars. Avoid boilerplate.
- Do not add scope tags like
feat:orfix:; use the emoji as the category indicator. - Donβt end the subject with punctuation.
- Prefer multiple atomic commits over one omnibus commit.
Emoji categories to choose from:
| Emoji | Description |
|---|---|
| π©Ή | Simple fix for a non-critical issue. |
| βοΈ | Perform experiments. |
| π½οΈ | Update code due to external API changes. |
| ποΈ | Critical hotfix. |
| β¬οΈ | Downgrade dependencies. |
| β¬οΈ | Upgrade dependencies. |
| π¨ | Improve structure / format of the code. |
| π» | Write code drunkenly. |
| π± | Add or update assets. |
| π | Release / Version tags. |
| π₯ | Introduce breaking changes. |
| π§± | Infrastructure related changes. |
| π | Fix a bug. |
| ποΈ | Make architectural changes. |
| π‘ | Add or update comments in source code. |
| π₯ | Add or update contributor(s). |
| πΈ | Add or update snapshots. |
| ποΈ | Perform database related changes. |
| π | Add or update analytics or track code. |
| πΈ | Improve user experience / usability. |
| π | Add or update secrets. |
| π€‘ | Mock things. |
| β°οΈ | Remove dead code. |
| π§ | Work in progress. |
| π· | Add or update CI build system. |
| π« | Add or update animations and transitions. |
| π₯ | Add or update an easter egg. |
| π₯ | Remove code or files. |
| π | Internationalization and localization. |
| π₯ | Catch errors. |
| π | Fix CI Build. |
| π¨ | Add or update development scripts. |
| β | Remove a dependency. |
| β | Add a dependency. |
| π± | Work on responsive design. |
| π·οΈ | Add or update types. |
| π | Add or update the UI and style files. |
| ποΈ | Fix security or privacy issues. |
| π | Add or update logs. |
| ποΈ | Improve SEO. |
| π | Add or update documentation. |
| πΈ | Add sponsorships or money related infrastructure. |
| π§ | Data exploration/inspection. |
| π | Remove logs. |
| π | Add or update business logic. |
| π¦οΈ | Add or update compiled files or packages. |
| π | Add or update license. |
| π | Work on code related to authorization, roles and permissions. |
| βοΈ | Fix typos. |
| π© | Write bad code that needs to be improved. |
| π | Pin dependencies to specific versions. |
| β»οΈ | Refactor code. |
| βͺοΈ | Revert changes. |
| π | Deploy stuff. |
| π¨ | Fix compiler / linter warnings. |
| π¦Ί | Add or update code related to validation. |
| π | Add or update a .gitignore file. |
| π± | Add or update seed files. |
| β¨ | Introduce new features. |
| π¬ | Add or update text and literals. |
| π©Ί | Add or update healthcheck. |
| π | Begin a project. |
| π§βπ» | Improve developer experience. |
| π§ͺ | Add a failing test. |
| π§΅ | Add or update code related to multithreading or concurrency. |
| π© | Add, update, or remove feature flags. |
| π | Move or rename resources (e.g.: files, paths, routes). |
| π | Merge branches. |
| ποΈ | Deprecate code that needs to be cleaned up. |
| βΏοΈ | Improve accessibility. |
| β | Add, update, or pass tests. |
| π§ | Add or update configuration files. |
| β‘οΈ | Improve performance. |
Subjects should look like these real examples from the repo:
π release 4.9.4π deploy 4.9.2π fix sorting on colormatch results pageπ fix history issue and regaining lost trayπ fix collection mode exiting when searchingπ fix grab / grabbing cursorπ§ testing and moving computersβ¬οΈ Bump django-htmx from 1.23.2 to 1.24.1
Guidelines for dependency bumps:
- Use
β¬οΈ Bump <package> from <old> to <new>in the subject. - If you include a body, briefly note changelog/links and whether itβs major/minor.
Guidelines for releases/deploys:
π release X.Y.Zfor tagging a new version.π deploy X.Y.Zfor pushing that version to production.
Tone and style:
- Imperative mood: βaddβ, βfixβ, βupdateβ, βbumpβ, βremoveβ.
- Keep it concise and specific; mention the user-visible area if relevant.
- Lowercase after the emoji unless a proper noun or version string requires caps.
Templates:
EMOJI short imperative summary
[Optional body: what changed and why; wrap at ~72 chars.]
π release X.Y.Z
β¬οΈ Bump package-name from A.B.C to D.E.F
- optional: one-line reason or link to changelog
π fix <specific bug or behavior>
- optional: brief why the bug happened or test added
Decision hints:
- Is it a user-facing bug fix? β π
- Is it a release or deploy with a version? β π
- Is it only a dependency version change? β β¬οΈ
- Is it purely visual/CSS/UI? β π
- Is it partial or exploratory work? β π§
- Otherwise choose the best-fit from the additional emojis.
More example subjects to emulate:
β¨ add quick filter to inventory tableβ»οΈ refactor swatch query for readabilityπ§ͺ add tests for library search paginationπ document test settings and make targetsπ§ update pytest config for coverage htmlπ₯ remove unused static vendor files
Do not:
- Do not use trailing periods or exclamation marks.
- Do not include scopes like
(app):orfeat:prefixes. - Do not write long, multi-paragraph bodies unless truly necessary.
- Do not bundle unrelated changes under one commit.