name: formatting-commits
description: Creates commits strictly following Conventional Commits format. ALWAYS read BEFORE committing changes, amending commits, or when the user mentions git commits, conventional commits, or commit messages.
compatibility: Requires git and git-format CLI tools (invoked as git formatted-commit)
license: GPL-3.0-or-later
metadata:
author: Amolith amolith@secluded.site
Create commits using git formatted-commit. For amends, choose the appropriate approach:
- Message stays accurate →
git commit --amend --no-edit(or-a --amend --no-editto stage all) - Message needs updating →
git formatted-commit --amendto reconstruct with new type/scope/body
git formatted-commit has no sub-commands and the following options:
<git_formatted-commit_flags> -t --type Commit type (required) -s --scope Commit scope (optional) -B --breaking Mark as breaking change (optional) -m --message Commit message (required) -b --body Commit body (optional) -T --trailer Trailer in 'Sentence-case-key: value' format (optional, repeatable) -a --add Stage all modified files before committing (optional) --amend Amend the previous commit (optional) -h --help </git_formatted-commit_flags> <git_formatted-commit_example> git formatted-commit -t feat -s "web/git-bug" -m "do a fancy new thing" -b "$(cat <<'EOF' Multi-line
- Body
- Here
EOF )" -T "Fixes: https://todo.sr.ht/~user/tracker/#123" </git_formatted-commit_example>
Most source code repositories require both an appropriate prefix and scope. Necessity of scope increases with repository size; the smaller the repo, the less necessary the scope. Valid trailers for ticket tracking integration depend on the platform in use.
- GitHub
- Closes:
- Fixes:
- Resolves:
- References:
- SourceHut
- Closes:
- Fixes:
- Implements:
- References:
Refer to installing-git-format.md if it's unavailable.