Fast, parallel Git operations across multiple repositories
Tortuga is a modern CLI tool for managing multiple Git repositories simultaneously. It can fetch, rebase, and push changes across all your repositories with a single command, providing real-time progress updates.
-
🚀 Parallel Operations: Process multiple repositories concurrently for maximum speed
-
📊 Real-time Progress: Live updates showing the status of each repository
-
🔄 Smart Sync Options: Choose between full sync or incoming-only updates
-
🎨 Beautiful Output: Color-coded status with clear visual indicators
-
⚡ Thread-safe: Modern Go concurrency patterns with channels and errgroup
-
🛡️ Error Resilient: Continue processing even if some repositories fail
-
🌈 Color Support: Respects terminal capabilities and
NO_COLORstandard
macOS (Homebrew):
brew install benweidig/homebrew-tap/tortugaFrom Source:
go install github.com/benweidig/tortuga@latestPre-built Binaries:
Download from releases or use the provided .deb packages for Debian/Ubuntu.
# Check all repositories in current directory
tt
# Check repositories in specific path
tt /path/to/my/projects
# Auto-sync all changes without prompting
tt --yes
# Use monochrome output (no colors)
tt --monochrome-
Discovery: Tortuga scans the target directory for Git repositories
-
Fetch: Parallel fetch from all remotes to check for updates
-
Status Display: Real-time status showing incoming/outgoing commits and local changes
-
Interactive Sync: Choose your sync strategy:
y- Full sync (stash → pull+rebase → push)i- Incoming only (stash → pull+rebase)n- No sync (just show status)
| Flag | Short | Description |
|---|---|---|
--monochrome |
-m |
Disable ANSI colors |
--yes |
-y |
Automatically accept sync prompts |
--verbose |
-v |
Show verbose error output |
Tortuga performs operations asynchronously across multiple repositories, so it cannot prompt for credentials interactively. Ensure your Git credentials are configured via:
-
SSH Keys: Recommended for seamless authentication
-
Git Credential Helper:
git config credential.helper store -
Git Credential Cache:
git config credential.helper cache
Colors are automatically detected and disabled when:
- Terminal doesn't support ANSI colors
NO_COLORenvironment variable is set--monochromeflag is used
Tortuga is built with modern Go patterns:
- Channel-based rendering: Thread-safe UI updates without mutexes
- errgroup: Proper error handling in concurrent operations
- Repository Manager: Clean abstraction for batch operations
- Git Interface: Mockable Git operations for testing
- Structured Types: Type-safe data structures instead of raw parsing
Go 1.24 or later
git clone https://github.com/benweidig/tortuga.git
cd tortuga
make buildmake all # Full pipeline: clean, format, test, vet, staticcheck, build
make test # Run tests
make fmt # Format code
make vet # Run go vet
make staticcheck # Run staticcheck (if installed)MIT. See LICENSE.
-
Mascot design based on Gopherize.me
-
Git logo by Jason Long under CC BY 3.0
-
Original UI inspiration from gosuri/uilive (MIT License)
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.
-
Fork the repository
-
Create your feature branch (
git checkout -b feature/amazing-feature) -
Run tests (
make test) -
Commit your changes (
git commit -m 'Add amazing feature') -
Push to the branch (
git push origin feature/amazing-feature) -
Open a Pull Request
