Git Committing
Commit Message Format
code
<type>(<scope>): <subject> [optional body] [optional footer]
Types
| Type | Description |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation only |
style | Formatting, no code change |
refactor | Code change without fix/feature |
perf | Performance improvement |
test | Adding or fixing tests |
chore | Build, CI, tooling changes |
Rules
- •Subject line: Under 50 characters, imperative mood ("add" not "added")
- •Body: Wrap at 72 characters, explain "why" not "what"
- •Scope: Optional, indicates affected area (e.g.,
parser,api,ui) - •Breaking changes: Add
!after type orBREAKING CHANGE:in footer
Workflow
- •
Run
git statusto see changes - •
Run
git diffto review modifications - •
Check recent commits with
git log --oneline -5for style consistency - •
Stage specific files (avoid
git add -A) - •
Write commit message using HEREDOC:
bashgit commit -m "$(cat <<'EOF' type(scope): subject Body explaining why this change was made. EOF )"
- •
Verify with
git status
Safety
- •Never commit secrets, credentials, or .env files
- •Never use
--no-verifyunless explicitly requested - •Never amend commits that have been pushed
- •Create NEW commits after hook failures, don't amend