Gity - Smart Git Companion
A powerful VS Code extension for enhanced git stash and commit management with bulk operations and smart workflows.

✨ Features
📦 Enhanced Stash Management
- Visual Stash Explorer with color-coded age indicators
- Quick stash actions: Save, apply, pop, drop
- Rename stashes after creation
- Interactive stash preview with diff view
- Auto-generated or custom stash messages
- Include/exclude untracked files option
✍️ Smart Commit Management
- Commit templates with emoji support (🎨 ✨ 🐛 etc.)
- Gitmoji picker for expressive commits
- Quick commit with auto-suggestions
- Amend last commit easily
- Conventional commits validation (optional)
⚡ Bulk Operations
- Bulk revert: Select multiple commits to revert at once
- Bulk cherry-pick: Apply multiple commits from any branch
- Progress indicators for long operations
- Conflict handling with guided resolution
🔄 Reset Operations
- Soft reset: Keep changes staged
- Mixed reset: Keep changes unstaged (default)
- Hard reset: Discard all changes (with safety confirmation)
🎯 Quick Actions Panel
One-click access to common workflows:
- Quick Save & Commit
- Save Work in Progress (WIP)
- Apply Last Stash
- Clean Commit with templates
- All reset modes
- Bulk operations
📊 Status Bar Integration
- Stash count at a glance
- Uncommitted changes indicator
- Click for quick actions
🚀 Usage
Getting Started
- Install the extension
- Open any git repository
- Click the Gity icon in the Activity Bar
- Explore the Stashes, Recent Commits, and Staging views
Common Workflows
Save Work in Progress
1. Make changes to your files
2. Click "Quick Actions" (rocket icon)
3. Select "Save Work in Progress"
4. Changes are stashed with auto-generated message
Rename a Stash
1. Right-click on any stash in the Stash Explorer
2. Select "Rename Stash"
3. Enter new message
4. Done! (uses git stash store technique)
Commit with Template
1. Stage your changes
2. Click "Commit with Template"
3. Select template (Feature, Fix, Docs, etc.)
4. Complete the message with emoji support
5. Commit!
Bulk Revert Commits
1. Open Quick Actions or use command palette
2. Select "Bulk Revert Commits"
3. Multi-select commits to revert
4. Confirm operation
5. Watch progress as commits are reverted
⚙️ Configuration
Access settings via File > Preferences > Settings and search for "Gity":
{
// Auto-generate stash messages
"gity.stash.autoSaveMessage": true,
// Include untracked files by default
"gity.stash.includeUntracked": false,
// Custom commit templates
"gity.commit.templates": [
{
"name": "Feature",
"template": "✨ feat: {message}",
"description": "A new feature"
}
],
// Validate conventional commits format
"gity.commit.validateConventional": false,
// Show status bar
"gity.statusBar.show": true,
// Confirm hard reset
"gity.reset.confirmHard": true
}
📋 Commands
Access via Command Palette (Ctrl+Shift+P or Cmd+Shift+P):
Stash Commands
Gity Stash: Save Stash with Message
Gity Stash: Quick Save Stash
Gity Stash: Apply Stash
Gity Stash: Pop Stash
Gity Stash: Drop Stash
Gity Stash: Clear All Stashes
Gity Stash: Rename Stash
Gity Stash: Show Stash Details
Commit Commands
Gity Commit: Quick Commit
Gity Commit: Commit with Template
Gity Commit: Add Emoji to Commit
Gity Commit: Amend Last Commit
Gity Commit: Bulk Revert Commits
Gity Commit: Bulk Cherry-Pick Commits
Reset Commands
Gity Reset: Reset - Soft (Keep Staged)
Gity Reset: Reset - Mixed (Keep Unstaged)
Gity Reset: Reset - Hard (Discard All)
Other Commands
Gity: Quick Actions Panel
🎨 Highlights
- Beautiful UI with color-coded indicators
- Intuitive workflows for common git tasks
- Safety first with confirmations for destructive operations
- Progress indicators for long-running operations
- Comprehensive gitmoji support for expressive commits
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📝 License
MIT License - see LICENSE file for details
🐛 Issues & Feedback
🙏 Acknowledgments
Built with ❤️ for the developer community. Inspired by the need for better git stash and commit management workflows.
Enjoy using Gity! 🚀