Skip to main content

A CLI tool to scan directories for Git repositories and display their status information.

Project description

gits-statuses

A CLI tool for scanning directories and displaying Git repository status information. This tool provides a comprehensive overview of all your Git repositories in a clean, tabular format.

Notes:

  • Implements a single CLI utility that is:
    • Distributed and downloaded via PyPi
    • Used globally as a bona fide CLI utility
    • Easy to install and use for the end user
    • Compatible with any terminal

Features

This scans your directories and displays:

Standard View:

  • Repository name
  • Current branch
  • Last Commit hash
  • Commits ahead of remote
  • Commits behind remote
  • Changed files count
  • Untracked files count
  • Only shows repositories with changes (clean repos are hidden)

Detailed View:

  • All columns from standard view
  • Total commits count
  • Status summary (e.g., "↑1 ~2 ?3" for 1 ahead, 2 changed, 3 untracked)
  • Remote URL
  • Shows ALL repositories (including clean ones)

Enhanced Summary:

  • Total repositories found
  • Repositories with changes
  • Repositories ahead of remote
  • Repositories behind remote
  • Repositories with untracked files

Installation

Prerequisites

Install with uv (Recommended)

# Install gits-statuses
uv tool install gits-statuses

# Verify installation
gits-statuses --version

Usage

Basic Commands

# Basic usage - scan current directory
gits-statuses

# Detailed view with remote URLs and total commits
gits-statuses --detailed

# Scan a specific directory
gits-statuses --path /path/to/projects

# Show help
gits-statuses --help

Examples

Standard view (shows only repositories with changes):

Repository    | Branch | Ahead | Behind | Changed | Untracked
-------------------------------------------------------------
gits-statuses | main   | 1     |        | 1       | 1        
my-project    | dev    | 2     |        | 3       | 2        
web-app       | main   |       | 2      | 1       |          

Summary:
  Total repositories: 5
  Repositories with changes: 3
  Repositories ahead of remote: 2
  Repositories behind remote: 1
  Repositories with untracked files: 2

Detailed view (shows all repositories):

Repository                    | Branch   | Commit                                   | Ahead | Behind | Changed | Untracked | Total Commits | Status | Remote URL                                            
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
andrei-git-statuses           | main     | 0a1b868f152356a10209aaa32092f7c6a9 |       |        |         |           | 39            | Clean  | https://github.com/andreinonea/gits-statuses/                     
azure-firewall-mon            | main     | 8673cfd7fb5a280f807e70c2dd3472862f |       |        |         |           | 211           | Clean  | https://github.com/nicolgit/azure-firewall-mon                    
blast                         | main     | 724a56be21379c2b7beb4770b5d11ef997 |       |        |         |           | 530           | Clean  | https://github.com/nicolgit/blast.git                             
brick-o-ponics                | main     | 2151f4ac998912c94007492c53d79d4a90 |       |        |         |           | 3             | Clean  | https://github.com/nicolgit/brick-o-ponics                        
cidr-tool                     | master   | 389f3901b0f9c23ce25175f68a859612b2 |       |        |         |           | 38            | Clean  | https://github.com/nicolgit/cidr-tool                             
containerapps-albumapi-csharp | main     | 89bcf94e1a05eefde083d7473ecbba9433 |       |        | 1       | 1         | 27            | ~1 ?1  | https://github.com/azure-samples/containerapps-albumapi-csharp.git
drawio-cooking-shapes         | main     | c455d2b8e3f33c049ec0a60bcf3ba8aa31 |       |        |         |           | 19            | Clean  | https://github.com/nicolgit/drawio-cooking-shapes.git             
gits-statuses                 | main     | 7be175881e8d85cb363422be471e77475d |       |        |         |           | 25            | Clean  | https://github.com/nicolgit/gits-statuses                         
hub-and-spoke-playground      | main     | e9ab8852d2ac4eb07d07158c3e679cec5a |       |        |         |           | 250           | Clean  | https://github.com/nicolgit/hub-and-spoke-playground              
metro-proximity               | main     | b44b59bbb5e9e3bd59e51d13105dd69dfc |       |        |         |           | 21            | Clean  | https://github.com/nicolgit/metro-proximity                       
nicolgit.github.io            | master   | 552f0373ba3a499cfa5afe8d7d5a95183b |       |        |         |           | 3063          | Clean  | https://github.com/nicolgit/nicolgit.github.io.git                
Open.Padlock                  | gen-maui | 458c303b08a3c1d6554baed83be0ba720a |       |        | 2       | 1         | 162           | ~2 ?1  | https://github.com/nicolgit/Open.Padlock                          
personal                      | master   | c52682ae2a13beb3e297d3c694bb3f5376 |       |        |         |           | 231           | Clean  | https://github.com/nicolgit/personal-certificates                 
proximity-test                | main     | c3e80667391da1631992d9cfecb770039a |       |        |         |           | 108           | Clean  | https://github.com/CaledosLab/proximity-test                      

Summary:
  Total repositories: 14
  Repositories with changes: 2
  Repositories ahead of remote: 0
  Repositories behind remote: 0
  Repositories with untracked files: 2

Status Symbols

  • ↑n: n commits ahead of remote
  • ↓n: n commits behind remote
  • ~n: n changed files (modified/added/deleted)
  • ?n: n untracked files
  • Clean: Repository has no pending changes

Examples:

  • ↑2 ~1 ?3 = 2 commits ahead, 1 changed file, 3 untracked files
  • ↓1 ~2 = 1 commit behind, 2 changed files
  • Clean = No changes, fully synchronized

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

gits_statuses-0.1.50.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

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

gits_statuses-0.1.50-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file gits_statuses-0.1.50.tar.gz.

File metadata

  • Download URL: gits_statuses-0.1.50.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.6

File hashes

Hashes for gits_statuses-0.1.50.tar.gz
Algorithm Hash digest
SHA256 0be7ad38047cccb5cbcad8dbe0308283ea923b0324fe8ee82b5e2d925d9c6214
MD5 759f4aede3dc247c933ae4b4c460ed56
BLAKE2b-256 bb64761663e2bc5ebc3fc4b5d43be113952c8c8eb3dfc183a92f8f09fc122041

See more details on using hashes here.

File details

Details for the file gits_statuses-0.1.50-py3-none-any.whl.

File metadata

File hashes

Hashes for gits_statuses-0.1.50-py3-none-any.whl
Algorithm Hash digest
SHA256 d5644646a42e9060b529b572042c741c535d94689e8b7f5e8b5b6f2f157bc7cc
MD5 24519b0b941ea1e5172d5d8017de6aa8
BLAKE2b-256 c17d71e5b35fdc5414a9ec42a3cbc38643aea230180c716a22ed7669b8838a2f

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