git-branch-switcher
v0.2.0
Published
Git branch utilities - easily switch, search, and delete branches in your git repository.
Maintainers
Readme
git-branch-switcher
A comprehensive CLI tool for git branch management with interactive prompts. Switch, search, and delete branches effortlessly. Say goodbye to remembering branch names and typing long git checkout commands!
Features
- 🚀 Interactive branch selection with multiple interfaces
- 🔍 Real-time branch search with filtering
- 🗑️ Safe branch deletion with multi-select
- 📅 Branches sorted by commit date (most recent first)
- 🎨 Colorized output for better readability
- ⚡ Fast and lightweight
- 🛡️ Safety features (prevents remote branch deletion)
- 🔧 Two convenient commands:
git-branch-switcherandbr
Installation
Install globally via npm:
npm install -g git-branch-switcherOr using pnpm:
pnpm add -g git-branch-switcherUsage
Switch between local branches
git-branch-switcher
# or use the shorthand
brThis will show an interactive list of your local branches. Use arrow keys to navigate and press Enter to switch.
Switch to remote branches
git-branch-switcher --remote
# or
br -rThis fetches and displays remote branches for checkout.
Search for branches
git-branch-switcher --search
# or
br -sUse the search interface to filter branches in real-time as you type.
Delete local branches
git-branch-switcher --delete
# or
br -d
# Force delete (for unmerged branches)
git-branch-switcher --delete-force
# or
br -DSelect multiple local branches to delete. Remote branch deletion is blocked for safety.
Combine options
# Search through remote branches
br --remote --search
# All available combinations work togetherCommand options
git-branch-switcher [options]
Options:
-r, --remote Work with remote branches instead of local ones
-s, --search Use search interface for branch filtering
-d, --delete Delete selected branches (local only)
-D, --delete-force Force delete selected branches (local only)
-h, --help Show help
-v, --version Show version numberRequirements
- Node.js 18 or higher (22.3.0 recommended - see .nvmrc)
- Git installed and configured
- A git repository (local or cloned)
Development
Setup
git clone https://github.com/sirlisko/git-branch-switcher.git
cd git-branch-switcher
pnpm installAvailable scripts
pnpm build # Compile TypeScript to JavaScript
pnpm typecheck # Run TypeScript type checking
pnpm lint # Run Biome linter
pnpm format # Format code with Biome
pnpm check # Run linting and formatting checksReleasing
This project uses Changesets with automated publishing:
- Create a changeset:
pnpm changeset - Commit and open a PR to
main - After merging, GitHub Actions will create a "Version Packages" PR
- Merge the "Version Packages" PR to automatically publish to npm
Tech stack
- TypeScript - Type-safe JavaScript
- simple-git - Git operations (branch listing, checkout, deletion)
- @inquirer/prompts - Modular interactive CLI prompts (select, search, checkbox)
- yargs - Command line argument parsing
- chalk - Terminal colors and styling
- Biome - Linting and formatting
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
License
MIT © Luca Lischetti
