Git Commit Helper
davila7/claude-code-templates
Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
...Expand allAbout Git Commit Helper
The Git Commit Helper skill is designed to assist developers in generating clear and descriptive commit messages by analyzing git diffs. It addresses the common problem of vague or poorly structured commit messages, which can lead to confusion and hinder collaboration in software development projects. By offering suggestions based on the changes staged for commit, it ensures that messages are informative and follow best practices in commit message formatting.
This skill features a structured approach to commit message generation, following the conventional commits format. It categorizes changes into specific types such as features, fixes, and documentation updates, and provides guidelines for writing effective commit messages. Users can analyze their staged changes using various git commands and receive tailored commit message suggestions, ultimately enhancing the clarity and quality of their version control practices.
Target users include software developers, teams working on collaborative projects, and anyone involved in maintaining codebases. The Git Commit Helper is particularly useful for those who want to improve their commit message quality, streamline their workflow, and ensure that their version control history is meaningful and easily understandable for current and future collaborators.
FAQ
How do I use the Git Commit Helper?
You can analyze staged changes using 'git diff --staged' and then generate a commit message based on the changes.
Is this skill compatible with all git environments?
Yes, the Git Commit Helper can be used in any environment that supports git commands.
Are there any limitations to using this skill?
The skill relies on the proper use of git commands and the conventional commits format for optimal results.
Can I customize the commit message format?
While the skill follows a conventional format, you can adapt the generated messages as needed.
What if I have multiple changes to commit?
You can use the multi-file commit guidelines to structure your messages effectively.
Git Commit Helper
Quick start
Analyze staged changes and generate commit message:
# View staged changesgit 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 authenticationImplement JWT-based authentication system with:- Login endpoint with token generation- Token validation middleware- Refresh token supportBug fix:
fix(api): handle null values in user profilePrevent crashes when user profile fields are null.Add null checks before accessing nested properties.Refactor:
refactor(database): simplify query builderExtract common query patterns into reusable functions.Reduce code duplication in database layer.Analyzing changes
Review what's being committed:
# Show files changedgit status# Show detailed changesgit diff --staged# Show statisticsgit diff --staged --stat# Show changes for specific filegit 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 flowBreaking change: Auth service now requires config objectScope 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 formatBREAKING CHANGE: All API responses now follow JSON:API specPrevious format:{ "data": {...}, "status": "ok" }New format:{ "data": {...}, "meta": {...} }Migration guide: Update client code to handle new response structureTemplate 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 interactivelygit add -p# Review what's stagedgit diff --staged# Commit with messagegit commit -m "type(scope): description"
Amending commits
Fix the last commit message:
# Amend commit message onlygit commit --amend# Amend and add more changesgit add forgotten-file.jsgit 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
Install Git Commit Helper
Download and extract the skill files to your .claude/skills/ directory.
Download ZIPClone the repository and copy the skill files to your project.
git clone https://github.com/davila7/claude-code-templates/blob/main/cli-tool/components/skills/development/git-commit-helper/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copy





Home
