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.0.tar.gz (8.5 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.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for multi_git_manager-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d73efca2d9d036a0e2662c217b5480af6b34b2b93e3e9b9c0542b77c247000d0
MD5 8e19df1eaceb66e4883d1ae126f1f876
BLAKE2b-256 340b50ffadeb7fa6d69010ed1ad9e0ccddf05bd8b287195531e6ccf8d50ea8ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for multi_git_manager-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f280c46a169e99d51dd82bbe7ddf8d7edd1bd379749d747062f7f78da767220
MD5 52e80af6280b7a6512b03ba37daf30ca
BLAKE2b-256 18a6c152edecd37a5c6dc94d6cbd8bf07d8a094afe5cef475444a3d205b16baa

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