A command-line tool for performing bulk Git operations across multiple repositories in a directory.
gitbulk helps you manage multiple Git repositories at once by executing common Git commands across all repositories found in subdirectories of your current working directory. This is particularly useful for developers who work with multiple related projects or microservices.
- Automatic repository discovery: Finds all Git repositories in subdirectories
- Bulk operations: Execute Git commands across multiple repos simultaneously
- Safe pulls: Only pulls when working tree is clean
- Color-coded output: Easy-to-read directory names with color highlighting
- Simple CLI: Intuitive command-line interface
- Clone this repository:
git clone <repository-url>
cd gitbulk- Build with Cargo:
cargo build --release- The binary will be available at
target/release/gitbulk
Copy the binary to a directory in your PATH for global access:
# Windows
copy target\release\gitbulk.exe C:\your\path\bin\
# Unix-like systems
cp target/release/gitbulk /usr/local/bin/Navigate to a directory containing multiple Git repositories and run:
gitbulk <COMMAND>| Command | Description |
|---|---|
list |
List all Git repositories in the current directory |
status |
Show Git status for all repositories |
fetch |
Fetch updates from remote for all repositories |
branch |
Show current branch for all repositories |
pull |
Pull changes (only if working tree is clean) |
help |
Show help message |
# List all Git repositories
gitbulk list
# Check status of all repositories
gitbulk status
# Fetch from all remotes
gitbulk fetch
# Show current branch for each repo
gitbulk branch
# Pull changes (only for clean working trees)
gitbulk pull
# Show help
gitbulk helpgitbulk expects your projects to be organized like this:
your-workspace/
├── project1/
│ └── .git/
├── project2/
│ └── .git/
├── project3/
│ └── .git/
└── non-git-folder/
It will automatically discover and operate on project1, project2, and project3, while ignoring non-git-folder.
- Clean working tree check: The
pullcommand only executes if the repository has no uncommitted changes - Error handling: Commands continue executing on other repositories even if one fails
- Status verification: Git status is checked before performing pull operations
gitbulk provides clear, color-coded output showing:
- Directory names in yellow for easy identification
- Error messages when repositories can't be pulled due to uncommitted changes
- Git command output for each repository
- Rust 1.0+ (for building)
- Git installed and available in PATH
- Windows, macOS, or Linux