Skip to main content

Automatically reorganize messy git commit histories into clean, semantic commits

Project description

Git Smart Squash

Use AI to transform your messy commit history into clean, logical commits that reviewers will love

Why Use Git Smart Squash?

Ever spent 30 minutes reorganizing commits before a PR? We've all been there. Git Smart Squash uses AI to automatically organize your changes into logical, well-structured commits in seconds.

What It Does

Before (your typical feature branch):

* 7f8d9e0 fix tests
* 6c5b4a3 typo
* 5a4b3c2 more auth changes
* 4d3c2b1 WIP: working on auth
* 3c2b1a0 update tests
* 2b1a0f9 initial auth implementation

After (AI-organized commits):

* a1b2c3d feat: implement complete authentication system with JWT tokens
* e4f5g6h test: add comprehensive test coverage for auth endpoints

The AI analyzes your entire diff and groups related changes together, creating clean commit messages that follow conventional commit standards.

Quick Start (2 minutes)

1. Install

pip install git-smart-squash

2. Set up AI (choose one)

Option A: Local AI (Free & Private) - Default for Privacy

# Install Ollama from https://ollama.com
ollama serve
ollama pull devstral

Option B: Cloud AI (if you have API keys)

export OPENAI_API_KEY="your-key"      # or
export ANTHROPIC_API_KEY="your-key"   # or
export GEMINI_API_KEY="your-key"

3. Use It!

cd your-git-repo
git checkout your-feature-branch

# Run it - shows the plan and asks for confirmation
git-smart-squash

# Or auto-apply without confirmation prompt
git-smart-squash --auto-apply

That's it! Your commits are now beautifully organized.

Common Use Cases

"I need to clean up before PR review"

git-smart-squash              # Shows plan and prompts for confirmation
git-smart-squash --auto-apply # Auto-applies without prompting

"I work with a different main branch"

git-smart-squash --base develop

"I want to use a specific AI provider"

git-smart-squash --ai-provider openai

"I use the short command"

gss  # Same as git-smart-squash

Safety First

Don't worry - Git Smart Squash is designed to be safe:

  • Dry run by default - always shows you the plan first
  • Always creates a backup branch before making changes
  • Never pushes automatically - you stay in control
  • Easy recovery - your original commits are always saved

If You Need to Undo

# Your original branch is always backed up
git branch | grep backup  # Find your backup
git reset --hard your-branch-backup-[timestamp]

AI Provider Options

Provider Cost Privacy Setup
Ollama (default) Free 100% Local ollama pull devstral
OpenAI ~$0.01/use Cloud Set OPENAI_API_KEY
Anthropic ~$0.01/use Cloud Set ANTHROPIC_API_KEY
Gemini ~$0.01/use Cloud Set GEMINI_API_KEY

Advanced Configuration (Optional)

Want to customize? Create a config file:

Project-specific (.git-smart-squash.yml in your repo):

ai:
  provider: openai  # Use OpenAI for this project

Global default (~/.git-smart-squash.yml):

ai:
  provider: local   # Always use local AI by default

Troubleshooting

"Ollama not found"

Install Ollama from https://ollama.com and run:

ollama serve
ollama pull devstral

"No changes to reorganize"

Make sure you're on your feature branch with committed work:

git diff main  # Should show differences from main

"Large diff taking too long" or "Token limit exceeded"

When using Ollama (local AI), there's a hard limit of 32,000 tokens (roughly 128,000 characters). For large diffs, try:

  • Breaking your work into smaller chunks
  • Using --base with a more recent commit
  • Switching to a cloud provider for this operation: --ai-provider openai

Need More Help?

Check out our detailed documentation or open an issue!

License

MIT License - see LICENSE file for details.


Made with love for developers who want cleaner git history

Project details


Release history Release notifications | RSS feed

This version

3.5.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_smart_squash-3.5.2.tar.gz (79.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_smart_squash-3.5.2-py3-none-any.whl (86.7 kB view details)

Uploaded Python 3

File details

Details for the file git_smart_squash-3.5.2.tar.gz.

File metadata

  • Download URL: git_smart_squash-3.5.2.tar.gz
  • Upload date:
  • Size: 79.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for git_smart_squash-3.5.2.tar.gz
Algorithm Hash digest
SHA256 e153baf492673436d7a35539cffc98189ea32e39c5efb883bb2b36bc8966df1a
MD5 dca47a70cb957c7d553eab919aa0e5e3
BLAKE2b-256 92cbc6c0738b0ecc9f6ce5671dd34714cfafa112919f1998251eb204715e1267

See more details on using hashes here.

Provenance

The following attestation bundles were made for git_smart_squash-3.5.2.tar.gz:

Publisher: publish.yml on edverma/git-smart-squash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file git_smart_squash-3.5.2-py3-none-any.whl.

File metadata

File hashes

Hashes for git_smart_squash-3.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b7f723b1c01b50cb0dbb3b91424e5ae558cfbe922dd8d075013757d621708eca
MD5 30f21d9781361c9eb66518c03f7cdc0a
BLAKE2b-256 9fcdce069e44dd28e9e9178a9a25470fc88f2f52920f7ddf532de5b5fb2027e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for git_smart_squash-3.5.2-py3-none-any.whl:

Publisher: publish.yml on edverma/git-smart-squash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page