Gitbasher
Bash utility that makes git easy to use
Install / Use
/learn @maxbolgarin/GitbasherREADME
gitbasher – simple bash utility that makes git easy to use
<picture> <img src=".github/commit.gif" width="600" alt="commit example"> </picture>With gitbasher usage of git becomes more simple and intuitive. It helps speeding up the development process, making it more consistent reducing mistakes. This is a wrapper around the most used git commands with a cleaner interface. It uses bash git sed grep, curl and some built-in utilities.
Quick Installation (recommended)
GITB_PATH=/usr/local/bin/gitb && \
sudo mkdir -p $(dirname $GITB_PATH) && \
curl -fSL https://github.com/maxbolgarin/gitbasher/releases/latest/download/gitb | sudo tee $GITB_PATH > /dev/null && \
sudo chmod +x $GITB_PATH
Or using npm:
npm install -g gitbasher
In Windows use wsl (enter wsl in terminal, read more) to enable Linux environment. Directory /usr/local/bin/ is not mandatory. If you get Permission denied, use sudo or put it to ~/.local/bin with adding it to PATH (how).
Table of Contents
- Quick Start Guide
- Why You Should Try This
- Real-World Examples
- AI-Powered Commits
- Common Workflows
- Complete Documentation
- Troubleshooting & FAQ
- Contributing
Quick Start Guide
1. First Steps
# Navigate to any git repository
cd your-project
# See all available commands
gitb
2. Your First Commit
# Smart commit - select files and create conventional message
gitb commit
# Fast commit - add all files with quick message
gitb commit fast
# AI-powered commit (after setting up API key)
gitb commit ai
3. Essential Daily Commands
gitb status # Check status
gitb commit # Make a commit
gitb push # Push changes
gitb pull # Pull changes
gitb branch # Switch branches
4. Set Up Your Environment
# Configure your identity
gitb cfg user
# Set default branch (usually 'main' or 'master')
gitb cfg default
# Set up AI features (optional but recommended)
gitb cfg ai
Why You Should Try This
gitbasher is essential if you use git on the daily basis. Benefits you will get:
- ⚡ Faster Development: Spend almost no time on git commands
- 🧠 No More Memorizing: No need to remember/google exact command names and parameters
- 📝 Better Commit Messages: Conventional commits with manual or AI-generated messages
- 🔧 Advanced Commands Made Easy: Use
git rebase,git stash, and hooks without complexity - 🌊 GitHub Flow: Simplified branch management following best practices
- 🎯 Consistent Workflow: Standardized processes across your team
Real-World Examples
🚀 Scenario 1: Starting a New Feature
Traditional Git:
git switch main # Switch to main
git pull origin main # Get latest changes
git switch -c feature/user-auth # Create new branch
# ... make changes ...
git add src/auth.js src/login.js # Stage files
git commit -m "feat(auth): add user authentication system"
git push -u origin feature/user-auth
With gitbasher:
gitb branch newd # Create new branch from updated main
# ... make changes ...
gitb commit push # Smart commit + push
🐛 Scenario 2: Quick Bug Fix
Traditional Git:
git status # Check what's changed
git add . # Add all files
git commit -m "fix: resolve login issue"
git push
With gitbasher:
gitb commit push # Fast commit + push (one command!)
🔀 Scenario 3: Merging Feature Branch
Traditional Git:
git switch main
git pull origin main
git merge feature/user-auth
git push origin main
git branch -d feature/user-auth
With gitbasher:
gitb merge to-main # Switch to main and merge current branch
gitb branch delete # Select and delete the merged branch
🤖 Scenario 4: AI-Powered Development
After making changes to multiple files:
gitb commit ai # AI analyzes changes and generates:
# "feat(auth): implement JWT authentication with refresh tokens"
For quick fixes:
gitb commit aif # AI commit all files with smart message
🎯 Scenario 5: Code Review Preparation
Clean up commits before PR:
gitb rebase i # Interactive rebase to squash/reorder commits
gitb commit fix # Create fixup commits for review feedback
gitb rebase s # Auto-squash fixup commits
📦 Scenario 6: Release Management
Creating and managing releases:
gitb tag # Create version tag
gitb tag push # Push tag to remote
gitb log # Review commit history
AI-Powered Commits
Transform your commit workflow with AI-generated messages that follow conventional commit standards.
Setup (One-time)
1. Get Your API Key
- Visit Google AI Studio
- Create a new API key
- Copy it for the next step
2. Configure gitbasher
gitb cfg ai
# Enter your API key when prompted
# Choose local (current repo) or global (all repos)
3. Optional: Proxy Setup
For regions with API restrictions:
gitb cfg proxy
# Examples:
# http://proxy.example.com:8080
# http://username:password@proxy.example.com:8080
AI Command Examples
| Scenario | Command | What It Does |
|--------------|-------------|------------------|
| Staged files ready | gitb c ai | Analyzes staged changes, generates message |
| Quick fix needed | gitb c aif | Adds all files + AI message |
| Ready to ship | gitb c aip | AI commit + automatic push |
| Full workflow | gitb c aifp | Add all + AI commit + push |
| Need control | gitb c ais | AI message + manual type/scope |
| Detailed commit | gitb c aim | Generates multiline commit message |
Common Workflows
🔄 Daily Development Workflow
# Start your day
gitb st # Check repository status
gitb pu # Pull latest changes
# Work on features
gitb b n # Create new feature branch
# ... code changes ...
gitb c ai # AI-powered commit
gitb p # Push changes
# Code review cycle
gitb c fix # Create fixup commits
gitb r a # Clean up with autosquash
gitb p f # Force push cleaned history
🚨 Hotfix Workflow
gitb b main # Switch to main branch
gitb pu # Get latest changes
gitb b n # Create hotfix branch
# ... fix the issue ...
gitb c aif # Fast AI commit
gitb p # Push hotfix
gitb m to-main # Merge to main
🔀 Feature Integration
# Prepare feature for merge
gitb pu # Update current branch
gitb r main # Rebase on main
gitb l # Review commit history
gitb c fix # Address review feedback
gitb r a # Squash fixups
# Integrate
gitb m to-main # Merge to main
gitb b del # Clean up feature branch
🎯 Release Workflow
gitb b main # Switch to main
gitb pu # Get latest changes
gitb l # Review changes since last release
gitb t a # Create annotated release tag
gitb t push # Push tag to trigger CI/CD
🛠️ Maintenance Workflow
# Clean up old branches
gitb b del # Interactive branch deletion
# Manage stashes
gitb stash # Interactive stash management
# Check hooks
gitb hook list # See all git hooks status
gitb hook create # Set up project hooks
Complete Documentation
Available Commands
| Command | Short aliases | Description |
|---------------------------------|---------------------|------------------------------------------|
| commit | c co com | Everything about commit creation |
| push | p ps ph | Pushing changes to a remote repository |
| pull | pu pl pul | Pulling changes from a remote repository |
| branch | b br bran | Managing branches |
| tag | t tg | Managing tags |
| merge | m me | Merge changes to the current branch |
| rebase | r re base | Rebase current branch |
| reset | res | Easy to use git reset |
| stash | s sta
