Skip to main content

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

multi_git_manager-0.2.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multi_git_manager-0.2.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file multi_git_manager-0.2.1.tar.gz.

File metadata

  • Download URL: multi_git_manager-0.2.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for multi_git_manager-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d71a65bd9d605afa2f7516a1983a532a86b11cccfd7c249219f67487c0fdb438
MD5 6052f54be423b288b7a23627ad08141b
BLAKE2b-256 3315dfd7d18f2d3c15177a38917e5a3fa33e62c82bef8dabccf83c8d9b9b0d9a

See more details on using hashes here.

File details

Details for the file multi_git_manager-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for multi_git_manager-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eab7038f87183aa5cc273d458bfebfcf953a470eb6acdb97d1b6fc46e2ff2e7b
MD5 3698bc0e3959f51e86f5bf61966bf7f9
BLAKE2b-256 d4b67f47841680b955065d34f8445f59770af6ad4a095e17d330c01a4ff6e7b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page