Run git commands across multiple repositories
Project description
mgitm (multi-git-manager)
Run git commands across multiple repositories at once.
Scans the current directory for git repos, fetches from remotes, and displays
a clean summary table — no more cd-ing into each folder to check what's going on.
Installation
pip install multi-git-manager
Requires Python 3.10+ and git available on PATH.
Example
A directory with four repos:
$ mgitm status
mgitm status
╭──────────┬──────────────┬─────────────────┬──────┬────────────────╮
│ Repo │ Branch │ Remote │ ↕ │ Status │
├──────────┼──────────────┼─────────────────┼──────┼────────────────┤
│ frontend │ main │ origin/main │ ↑2 │ ✓ clean │
│ backend │ develop │ origin/develop │ ↑1 ↓3│ staged │
│ docs │ master │ origin/master │ — │ ✓ clean │
│ infra │ main │ none │ — │ untracked │
╰──────────┴──────────────┴─────────────────┴──────┴────────────────╯
- frontend — 2 commits ahead of origin, clean working tree.
- backend — 1 ahead, 3 behind, has staged changes.
- docs — up to date, clean.
- infra — no remote configured, has untracked files.
With --branch_all:
$ mgitm status --branch_all
mgitm status — all branches
╭──────────┬──────────────┬─────────────────┬──────┬─────────────╮
│ Repo │ Branch │ Remote │ ↕ │ Status │
├──────────┼──────────────┼─────────────────┼──────┼─────────────┤
│ frontend │ → main │ origin/main │ ↑2 │ ✓ clean │
│ │ develop │ origin/develop │ — │ — │
│ │ experiment │ origin/experime…│ ↓5 │ — │
│ backend │ → develop │ origin/develop │ ↑1 ↓3│ staged │
│ │ main │ origin/main │ — │ — │
│ docs │ → master │ origin/master │ — │ ✓ clean │
│ infra │ → main │ none │ — │ untracked │
│ │ feature-x │ none │ — │ — │
╰──────────┴──────────────┴─────────────────┴──────┴─────────────╯
The → marks the currently checked-out branch in each repo. Status is only
meaningful for the active branch.
Usage
mgitm status
Fetches all repos, then prints a table of branch, remote tracking, ahead/behind counts, and working-tree cleanliness.
mgitm status --branch_all
Same table, but lists every local branch as its own row instead of just the checked-out one.
Commands
| Command | Description |
|---|---|
mgitm status |
Fetch remotes and show per-repo summary |
mgitm status -h |
Show help for the status command |
mgitm --help |
Show top-level help |
PRs and new feature requests are welcome!
Open a GitHub issue and/or submit a PR for any useful improvement you come up with.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multi_git_manager-0.2.0.tar.gz.
File metadata
- Download URL: multi_git_manager-0.2.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d73efca2d9d036a0e2662c217b5480af6b34b2b93e3e9b9c0542b77c247000d0
|
|
| MD5 |
8e19df1eaceb66e4883d1ae126f1f876
|
|
| BLAKE2b-256 |
340b50ffadeb7fa6d69010ed1ad9e0ccddf05bd8b287195531e6ccf8d50ea8ba
|
File details
Details for the file multi_git_manager-0.2.0-py3-none-any.whl.
File metadata
- Download URL: multi_git_manager-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f280c46a169e99d51dd82bbe7ddf8d7edd1bd379749d747062f7f78da767220
|
|
| MD5 |
52e80af6280b7a6512b03ba37daf30ca
|
|
| BLAKE2b-256 |
18a6c152edecd37a5c6dc94d6cbd8bf07d8a094afe5cef475444a3d205b16baa
|