
Git Commit Helper
FreeGenerate clear, descriptive commit messages from git diffs.
Free · Opens the source repo
What Git Commit Helper does
Git Commit Helper is a bash-based tool designed to assist developers in crafting meaningful commit messages by analyzing staged changes within a Git repository. By leveraging the git diff --staged command, this skill helps users generate commit messages that adhere to the conventional commits format, ensuring clarity and consistency across project histories. This is particularly useful for teams that follow strict commit message guidelines or for individual developers looking to improve their commit practices.
The skill operates by first reviewing the staged changes in the repository, allowing users to identify the type of changes made, such as features, fixes, or refactors. It then suggests a commit message format that includes a type, scope, and description, along with optional body and footer sections. By following the structured format, developers can communicate the purpose of their changes effectively, which is beneficial for both current team members and future contributors who rely on commit history for context.
Git Commit Helper is ideal for developers who want to maintain high-quality commit messages without the hassle of manually composing them each time. It serves as an interactive assistant that not only prompts users to consider the significance of their changes but also reinforces best practices in commit message writing. This skill is particularly advantageous in collaborative environments where clear communication is essential for project success.
However, while Git Commit Helper streamlines the commit message generation process, it may not be suitable for users who prefer a more freeform approach to writing messages or those who do not follow conventional commit standards. It is also less effective for larger projects where commit messages may need to encompass more complex narratives or detailed explanations beyond the suggested format.
When to use it
Use this tool when preparing to commit changes in a Git repository and needing assistance in formulating a clear commit message.
When not to use it
Avoid using this skill if you prefer writing commit messages in a freeform style or if your project does not adhere to conventional commit standards.
What you can build with it
Creating a Feature Commit
When adding a new feature to your application, use the Git Commit Helper to generate a clear commit message that describes the addition.
Fixing a Bug
After resolving a bug, leverage the skill to produce a concise commit message that explains the fix and its impact.
Refactoring Code
When refactoring, utilize the Git Commit Helper to ensure your commit messages accurately reflect the changes made and maintain clarity.
How to install Git Commit Helper
View source1. Install with the skills CLI
npx skills add davila7/claude-code-templates/git-commit-helper --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by davila7Git Commit Helper
Quick start
Analyze staged changes and generate commit message:
# View staged changes
git diff --staged
# Generate commit message based on changes
# (Claude will analyze the diff and suggest a message)
Commit message format
Follow conventional commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- style: Code style changes (formatting, missing semicolons)
- refactor: Code refactoring
- test: Adding or updating tests
- chore: Maintenance tasks
Examples
Feature commit:
feat(auth): add JWT authentication
Implement JWT-based authentication system with:
- Login endpoint with token generation
- Token validation middleware
- Refresh token support
Bug fix:
fix(api): handle null values in user profile
Prevent crashes when user profile fields are null.
Add null checks before accessing nested properties.
Refactor:
refactor(database): simplify query builder
Extract common query patterns into reusable functions.
Reduce code duplication in database layer.
Analyzing changes
Review what's being committed:
# Show files changed
git status
# Show detailed changes
git diff --staged
# Show statistics
git diff --staged --stat
# Show changes for specific file
git diff --staged path/to/file
Commit message guidelines
DO:
- Use imperative mood ("add feature" not "added feature")
- Keep first line under 50 characters
- Capitalize first letter
- No period at end of summary
- Explain WHY not just WHAT in body
DON'T:
- Use vague messages like "update" or "fix stuff"
- Include technical implementation details in summary
- Write paragraphs in summary line
- Use past tense
Multi-file commits
When committing multiple related changes:
refactor(core): restructure authentication module
- Move auth logic from controllers to service layer
- Extract validation into separate validators
- Update tests to use new structure
- Add integration tests for auth flow
Breaking change: Auth service now requires config object
Scope examples
Frontend:
feat(ui): add loading spinner to dashboardfix(form): validate email format
Backend:
feat(api): add user profile endpointfix(db): resolve connection pool leak
Infrastructure:
chore(ci): update Node version to 20feat(docker): add multi-stage build
Breaking changes
Indicate breaking changes clearly:
feat(api)!: restructure API response format
BREAKING CHANGE: All API responses now follow JSON:API spec
Previous format:
{ "data": {...}, "status": "ok" }
New format:
{ "data": {...}, "meta": {...} }
Migration guide: Update client code to handle new response structure
Template workflow
- Review changes:
git diff --staged - Identify type: Is it feat, fix, refactor, etc.?
- Determine scope: What part of the codebase?
- Write summary: Brief, imperative description
- Add body: Explain why and what impact
- Note breaking changes: If applicable
Interactive commit helper
Use git add -p for selective staging:
# Stage changes interactively
git add -p
# Review what's staged
git diff --staged
# Commit with message
git commit -m "type(scope): description"
Amending commits
Fix the last commit message:
# Amend commit message only
git commit --amend
# Amend and add more changes
git add forgotten-file.js
git commit --amend --no-edit
Best practices
- Atomic commits - One logical change per commit
- Test before commit - Ensure code works
- Reference issues - Include issue numbers if applicable
- Keep it focused - Don't mix unrelated changes
- Write for humans - Future you will read this
Commit message checklist
- Type is appropriate (feat/fix/docs/etc.)
- Scope is specific and clear
- Summary is under 50 characters
- Summary uses imperative mood
- Body explains WHY not just WHAT
- Breaking changes are clearly marked
- Related issue numbers are included
Frequently asked questions about Git Commit Helper
Similar skills
Release Candidate Preparation
Streamline your OpenAI Agents release process.
Gitmoji
Generate expressive commit messages with emojis.
GitHub Release
Automate your GitHub library release process effortlessly.
Commit Message Storyteller
Generate meaningful commit messages from your git diffs.
Author Contributions
Trace author contributions across branches in Git.
Implementation Kickoff
Streamline your code implementation process with ease.
