github/git-commit
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
This is a copy. The original lives at christophacham/git-commit.
npx skills add https://github.com/github/awesome-copilot --skill git-commit
Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | Purpose |
| ---------- | ------------------------------ |
| feat | New feature |
| fix | Bug fix |
| docs | Documentation only |
| style | Formatting/style (no logic) |
| refactor | Code refactor (no feature/fix) |
| perf | Performance improvement |
| test | Add/update tests |
| build | Build system/dependencies |
| ci | CI/config changes |
| chore | Maintenance/misc |
| revert | Revert commit |
# Exclamation mark after type/scope
feat!: remove deprecated endpoint
# BREAKING CHANGE footer
feat: allow config to extend other configs
BREAKING CHANGE: `extends` key behavior changed
# If files are staged, use staged diff
git diff --staged
# If nothing staged, use working tree diff
git diff
# Also check status
git status --porcelain
If nothing is staged or you want to group changes differently:
# Stage specific files
git add path/to/file1 path/to/file2
# Stage by pattern
git add *.test.*
git add src/components/*
# Interactive staging
git add -p
Never commit secrets (.env, credentials.json, private keys).
Analyze the diff to determine:
# Single line
git commit -m "<type>[scope]: <description>"
# Multi-line with body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>
<optional body>
<optional footer>
EOF
)"
Closes #123, Refs #456Take github/git-commit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.