When one feature touches multiple repositories, the Git workflow can quickly become repetitive.
You may need to:
- Create the same branch in several repositories
- Pull the latest changes in each project
- Check the status of every repository
- Remember which repositories belong to the same task
- Move between directories repeatedly
A typical workflow might look like this:
cd api
git switch -c fix/123-auth
cd ../frontend
git switch -c fix/123-auth
cd ../worker
git switch -c fix/123-auth
I built RepoFleet to simplify this workflow.
What Is RepoFleet?
RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories.
Instead of managing each repository separately, you create one issue context:
rf issue create 123 --name auth --type fix
RepoFleet creates and manages the related branches across your repositories.
You can then check everything from one place:
rf issue status
One issue. Multiple repositories. One workflow.
The Problem
Imagine that one feature requires changes in three repositories:
api
frontend
worker
Without RepoFleet, you might need to run:
cd api
git fetch
git switch -c feature/123-auth
cd ../frontend
git fetch
git switch -c feature/123-auth
cd ../worker
git fetch
git switch -c feature/123-auth
Later, you need to repeat a similar process to check status, pull changes, or push branches.
This works, but it becomes inconvenient when you manage many tasks across multiple repositories.
Why I Built It
At work, our codebase was split into multiple repositories.
After the split, one task could require changes in several projects.
I repeatedly had to:
- Create matching branches
- Switch between project directories
- Fetch updates
- Check Git status in every repository
- Remember which repositories belonged to each issue
I wanted a workflow centered around the issue, rather than individual repository directories.
That idea became RepoFleet.
_Example Workflow
_Create an issue context
rf issue create 123 --name authentication --type featureAdd repositories
rf issue repo add api
rf issue repo add frontend
rf issue repo add worker
Check all repository statuses
rf issue statusSync repositories
rf issue syncNavigate to a repository
rf issue goto
RepoFleet keeps related repositories connected to the same issue and provides one place to view their Git state.
Without RepoFleet
cd api
git status
cd ../frontend
git status
cd ../worker
git status
With RepoFleet
rf issue status
Instead of checking every repository manually, you get one combined view.
Main Features
RepoFleet currently supports:
Issue-centered multi-repository workflows
Consistent branch creation across repositories
A multi-repository status dashboard
Fetching and syncing repositories
Interactive repository navigation
GitHub pull request workflows
GitLab merge request workflows
Homebrew installation
Scoop installation
Snapshots for saving multi-repository issue state
Git worktree support is also part of the development plan.
Who Is RepoFleet For?
RepoFleet may be useful when:
- A feature touches multiple microservices
- Frontend and backend code live in separate repositories
- A bug requires changes across several services
- Your organization recently moved away from a monorepo
- You frequently create matching branches in different projects
- You manage several related libraries or applications
RepoFleet does not replace Git.
It provides a higher-level workflow around Git for tasks that span multiple repositories.
Installation
Homebrew
brew install mehranzand/tap/repofleet
Scoop
scoop bucket add mehranzand https://github.com/mehranzand/scoop-bucket
scoop install repofleet
Feedback Is Welcome
RepoFleet is still evolving, and I would appreciate feedback from developers who regularly work across multiple repositories.
Iām especially interested in hearing about:
- How you currently manage multi-repository tasks
- Problems you experience with matching branches
- Features that would make RepoFleet more useful
- How you use Git worktrees across multiple projects
You can find the project here:
š github.com/mehranzand/repofleet
If this workflow sounds familiar, Iād love to hear how you currently handle it.
Top comments (0)