Skip to main content

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

Project description

gitskan

A CLI tool for scanning directories and displaying Git repository status information. gitskan is a fork of gits-statuses which provides scripts to get a comprehensive overview of all your Git repositories in a clean, tabular format.

Notes:

  • gitskan was catalyzed by this GitHub Issue
  • Implements a single CLI utility that can:
    • Be distributed to and downloaded from PyPi via (pip or uv)
    • Used globally as a bona fide CLI utility
    • Simplify both installation and usage for the end user
    • Run on any terminal

Features

This scans your directories and displays:

Standard View:

  • Repository name
  • Current branch
  • 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 gitskan
uv tool install gitskan

# Verify installation
gitskan --version

Usage

Basic Commands

# Basic usage - scan current directory
gitskan

# Detailed view with remote URLs and total commits
gitskan --detailed

# Scan a specific directory
gitskan --path /path/to/projects

# Show help
gitskan --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 | Ahead | Behind | Changed | Untracked | Total Commits | Status   | Remote URL                               
---------------------------------------------------------------------------------------------------------------
api-service   | main   |       |        |         |           | 45            | Clean    | https://github.com/user/api-service
gits-statuses | main   | 1     |        | 1       | 1         | 9             | ↑1 ~1 ?1 | https://github.com/nicolgit/gits-statuses
my-project    | dev    | 2     |        | 3       | 2         | 67            | ↑2 ~3 ?2 | https://github.com/user/my-project
utils-lib     | main   |       |        |         |           | 23            | Clean    | https://github.com/user/utils-lib
web-app       | main   |       | 2      | 1       |           | 102           | ↓2 ~1    | https://github.com/user/web-app

Summary:
  Total repositories: 5
  Repositories with changes: 3
  Repositories ahead of remote: 2
  Repositories behind remote: 1
  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

gitskan-0.0.7.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

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

gitskan-0.0.7-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file gitskan-0.0.7.tar.gz.

File metadata

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

File hashes

Hashes for gitskan-0.0.7.tar.gz
Algorithm Hash digest
SHA256 7985f22bc5c0ed5b4b909d5c9e0c564d67715165ba6a3dbd5178a30d236441bf
MD5 91b6be431e487597d6e6de499992c685
BLAKE2b-256 d661afefdb7f83b02b5ff36f87a5593eab151341c458401ae7db18beaf5c2881

See more details on using hashes here.

File details

Details for the file gitskan-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: gitskan-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.6

File hashes

Hashes for gitskan-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ce74c69dd676678e65bd8a3ffda4867796aa827f62eef2257d0b7ae691723e39
MD5 eab7f491a9e34d69992af5c7b41b2b1c
BLAKE2b-256 e25da5402eabfa5a840204daba2983fc562f01bd57a72239262ada678b8e6bb2

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