Skip to content
/ gitmit Public

A lightweight CLI tool that analyzes your staged changes and suggests professional commit messages following the Conventional Commits format — without relying on AI.

License

Notifications You must be signed in to change notification settings

andev0x/gitmit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitmit

Go Version License: MIT Go Report Card

Gitmit - Smart Git Commit Message Generator

🧠 A lightweight CLI tool that analyzes your staged changes and suggests professional commit messages following Conventional Commits format.

Features

  • Intelligent Analysis: Analyzes git status and diff to understand your changes
  • Conventional Commits: Follows the Conventional Commits specification
  • Multiple Commit Types: Supports feat, fix, refactor, chore, test, docs, style, perf, ci, build, security, config, deploy, revert, and wip
  • Interactive Mode: Customize commit messages with an interactive prompt
  • Quick Commits: Fast commits without interaction
  • Smart Analysis: Advanced commit history analysis and insights
  • Amend Support: Easily amend previous commits with smart suggestions
  • Custom Messages: Use custom messages with scope and breaking change support
  • Zero Configuration: Works out of the box
  • Lightning Fast: Complete offline operation
  • OpenAI Integration: Optional AI-powered commit message generation

Installation

From Releases

Download the latest release for your platform from the releases page.

From Source

git clone https://github.com/andev0x/gitmit.git
cd gitmit
go build -o gitmit
./gitmit

Usage

Basic Usage

# Stage your changes
git add .

# Generate and commit with smart message
gitmit

Command Options

# Show suggested message without committing
gitmit --dry-run

# Show detailed analysis
gitmit --verbose

# Quick commit without interaction
gitmit --quick

# Use OpenAI for enhanced message generation
gitmit --openai

# Amend the last commit
gitmit --amend

# Force interactive mode
gitmit --interactive

# Custom commit message
gitmit --message "your custom message"

# Specify commit scope
gitmit --scope "api"

# Mark as breaking change
gitmit --breaking

Smart Analysis

# Analyze commit history and get insights
gitmit analyze

# Get smart commit suggestions
gitmit smart

Propose Mode

# Propose commit message from diff
git diff --cached | gitmit propose

Commit Types

Gitmit automatically detects and suggests appropriate commit types:

  • feat: New features
  • fix: Bug fixes
  • refactor: Code refactoring
  • chore: Maintenance tasks
  • test: Adding or updating tests
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • perf: Performance improvements
  • ci: CI/CD changes
  • build: Build system changes
  • security: Security improvements
  • config: Configuration changes
  • deploy: Deployment changes
  • revert: Reverting previous commits
  • wip: Work in progress

Examples

Feature Addition

git add new-feature.js
gitmit
# Suggests: feat: add new-feature.js

Bug Fix

git add bug-fix.js
gitmit
# Suggests: fix: resolve issue in bug-fix.js

Documentation Update

git add README.md
gitmit
# Suggests: docs: update README

Quick Commit

git add .
gitmit --quick
# Commits immediately with auto-generated message

Custom Message with Scope

git add .
gitmit --message "improve performance" --scope "api" --breaking
# Creates: feat(api)!: improve performance

Amend Previous Commit

git add additional-changes.js
gitmit --amend
# Amends the last commit with new changes

Smart Analysis Features

Commit History Analysis

gitmit analyze

Provides insights on:

  • Commit patterns and trends
  • Most active files and directories
  • Commit type distribution
  • Development velocity
  • Potential improvements

Smart Suggestions

gitmit smart

Offers:

  • Multiple commit suggestions with confidence levels
  • Context-aware reasoning
  • File operation analysis
  • Scope detection
  • Breaking change identification

Configuration

Gitmit works out of the box with zero configuration. However, you can enhance it with:

OpenAI Integration

Set your OpenAI API key for enhanced commit message generation:

export OPENAI_API_KEY="your-api-key"
gitmit --openai

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Roadmap

  • Git hooks integration
  • Team commit templates
  • Commit message validation
  • Integration with issue trackers
  • Multi-language support
  • Commit message templates
  • Branch-based suggestions
  • Commit message history learning

About

A lightweight CLI tool that analyzes your staged changes and suggests professional commit messages following the Conventional Commits format — without relying on AI.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published