name: commit description: Stage and create a Conventional Commits message for the current change
/commit
Create a well-formed commit following the Conventional Commits
standard. The format is enforced by gitlint in the commit-msg hook.
Steps
Run
git statusandgit diff(andgit diff --staged) to see what changed.Review recent history for style:
git log --oneline -10.Group the change into a single focused commit. If the working tree mixes unrelated changes, stage selectively (
git add -p/ specific paths) rather than committing everything at once.Write the message in Conventional Commits form:
<type>[(scope)][!]: <imperative summary, ≤72 chars> <optional body: what & why, wrapped at 72> <optional footer: BREAKING CHANGE: …, Refs: #123>Never use
--no-verify. If pre-commit hooks fail, fix the cause and re-commit.Do not commit secrets, generated artifacts, or work-in-progress to a protected branch (
main/dev/master).
Types
| Type | Use for |
|---|---|
feat |
new feature |
fix |
bug fix |
refactor |
behavior-preserving restructure |
test |
add / update tests |
docs |
documentation |
style |
formatting only |
perf |
performance |
chore |
config / build / tooling |
build |
build system or dependencies |
ci |
CI configuration |
revert |
revert a previous commit |
Notes
- No emoji — the title must start with the
type. - One logical change per commit; keep the history bisectable.
- The summary is imperative mood: "add", not "added" / "adds".
scopeis optional:fix(search): …. A!before the colon (or aBREAKING CHANGE:footer) marks a breaking change.