Git Commit Helper

Craft clear, consistent commit messages from git diffs

✨ The solution you've been looking for

Verified
Tested and verified by our team
16036 Stars

Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.

git commit-messages version-control conventional-commits code-review development-workflow automation
Repository

See It In Action

Interactive preview & real-world examples

Live Demo
Skill Demo Animation

AI Conversation Simulator

See how users interact with this skill

User Prompt

I've staged some changes for authentication. Can you help me write a good commit message? Here's the diff: [paste git diff --staged output]

Skill Processing

Analyzing request...

Agent Response

A well-structured commit message following conventional commits format with appropriate type, scope, and description

Quick Start (3 Steps)

Get up and running in minutes

1

Install

claude-code skill install git-commit-helper

claude-code skill install git-commit-helper
2

Config

3

First Trigger

@git-commit-helper help

Commands

CommandDescriptionRequired Args
@git-commit-helper generate-commit-message-from-staged-changesAnalyze git diff and create a properly formatted conventional commit messageNone
@git-commit-helper review-multi-file-changes-for-atomic-commitsBreak down complex changes into focused, atomic commits with clear messagingNone
@git-commit-helper format-breaking-changes-properlyDocument breaking changes with clear migration guidance in commit messagesNone

Typical Use Cases

Generate commit message from staged changes

Analyze git diff and create a properly formatted conventional commit message

Review multi-file changes for atomic commits

Break down complex changes into focused, atomic commits with clear messaging

Format breaking changes properly

Document breaking changes with clear migration guidance in commit messages

Overview

Git Commit Helper

Quick start

Analyze staged changes and generate commit message:

1# View staged changes
2git diff --staged
3
4# Generate commit message based on changes
5# (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:

 1# Show files changed
 2git status
 3
 4# Show detailed changes
 5git diff --staged
 6
 7# Show statistics
 8git diff --staged --stat
 9
10# Show changes for specific file
11git 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 dashboard
  • fix(form): validate email format

Backend:

  • feat(api): add user profile endpoint
  • fix(db): resolve connection pool leak

Infrastructure:

  • chore(ci): update Node version to 20
  • feat(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

  1. Review changes: git diff --staged
  2. Identify type: Is it feat, fix, refactor, etc.?
  3. Determine scope: What part of the codebase?
  4. Write summary: Brief, imperative description
  5. Add body: Explain why and what impact
  6. Note breaking changes: If applicable

Interactive commit helper

Use git add -p for selective staging:

1# Stage changes interactively
2git add -p
3
4# Review what's staged
5git diff --staged
6
7# Commit with message
8git commit -m "type(scope): description"

Amending commits

Fix the last commit message:

1# Amend commit message only
2git commit --amend
3
4# Amend and add more changes
5git add forgotten-file.js
6git commit --amend --no-edit

Best practices

  1. Atomic commits - One logical change per commit
  2. Test before commit - Ensure code works
  3. Reference issues - Include issue numbers if applicable
  4. Keep it focused - Don’t mix unrelated changes
  5. 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

What Users Are Saying

Real feedback from the community

Environment Matrix

Dependencies

Git 2.0+
Bash/shell access for git commands

Context Window

Token Usage ~1K-3K tokens for typical git diffs and commit analysis

Security & Privacy

Information

Author
davila7
Updated
2026-01-30
Category
automation-tools