Skip to main content

Automatically reorganize messy git commit histories into clean, semantic commits

Project description

Git Smart Squash

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 --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 --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!

📚 Learn More

License

MIT License - see LICENSE file for details.


Made with ❤️ for developers who want cleaner git history

PS: Your git log will never be the same! 🚀

Project details


Release history Release notifications | RSS feed

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.4.3.tar.gz (36.1 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.4.3-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: git_smart_squash-3.4.3.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for git_smart_squash-3.4.3.tar.gz
Algorithm Hash digest
SHA256 21c162d07afd737573dec9a247103b3776ef0f58670352ba65bb70d9f3b6e981
MD5 4db5087e1ef03cc1fa0b969c88bd0486
BLAKE2b-256 c8deb646be1ef792769b66c3bf7eebfdab215360831d05693b177016982f6f98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_smart_squash-3.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f561d8b7dc4a1eaf512900c7d090693e5b70648ae1c45a625cf8bf61940bdd16
MD5 caef115c46c81671ada45449dbbb6343
BLAKE2b-256 4f6b8fd8bb438e80dd2c21219dd4871a3b76d79bf6932725cabe4cd1c22c1cb7

See more details on using hashes here.

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