Repolode
nosarthur

nosarthur/gita

A command-line tool for viewing the status of many git repos side by side and running git or shell commands across them.

Stars
1,962
Forks
95
Open issues
40
Last commit
17 days ago

What is it?

Gita manages a set of local git repositories from one place. Running `gita ll` shows each repo's branch, staged, unstaged, untracked and stashed state, and commit message in a single colored table, with branch colors indicating whether the local branch is ahead, behind, diverged, or has no remote.

Repos are registered with `gita add`, optionally grouped, and can be scoped with a context so that commands like `gita pull` apply only to a chosen group or to the group matching the current directory. Any git command or alias can be delegated to one or many repos from any working directory, and `gita shell` runs arbitrary shell commands across them.

Custom sub-commands are defined in a JSON file, and colors, displayed info items, status symbols and per-repo git flags (such as bare-repo dotfile setups) are configurable. Installation is available through pip, uv, or pipx.

Key features

  • 01Shows branch, change state and last commit for all repos in one colored view.
  • 02Delegates git commands and aliases to repos from any directory.
  • 03Groups repos and sets a context so commands apply to a chosen subset.
  • 04Recursively adds repos under a parent folder and builds hierarchical groups.
  • 05Supports custom sub-commands, colors, status symbols and per-repo git flags.

Use cases

  • Keeping an overview of many related repos in a monorepo-like project split across folders.
  • Pulling or fetching updates across all of your local clones in one command.
  • Restoring a set of repos on a new machine from a frozen configuration file.
  • Running the same git or shell operation across several repositories at once.

Quick start

  1. 1

    Install gita with pip

    pip3 install -U gita
  2. 2

    Add your repos to gita

    gita add <repo-path(s)>
  3. 3

    Show the status of all repos

    gita ll

Things to know

  • Shell and superman modes run arbitrary commands, so use them with care across many repos.

In collections

Topics

FAQ

What is gita?
A command-line tool for viewing the status of many git repos side by side and running git or shell commands across them. Gita manages a set of local git repositories from one place. Running `gita ll` shows each repo's branch, staged, unstaged, untracked and stashed state, and commit message in a single colored table, with branch colors indicating whether the local branch is ahead, behind, diverged, or has no remote.
Is gita free to use? What license does it have?
gita is open source under the MIT license. Check the license terms before using it in commercial products.
Is gita still maintained?
Actively maintained. The last commit to gita was on Oct 21, 2026.
What can I use gita for?
Keeping an overview of many related repos in a monorepo-like project split across folders. Pulling or fetching updates across all of your local clones in one command. Restoring a set of repos on a new machine from a frozen configuration file. Running the same git or shell operation across several repositories at once.
How do I install gita?
Install gita with pip: pip3 install -U gita Add your repos to gita: gita add <repo-path(s)> Show the status of all repos: gita ll
Where can I get gita?
The source code and installation instructions are on GitHub: https://github.com/nosarthur/gita

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects