Skip to main content

A Git commit activity visualization tool with advanced visualizations and detailed repository insights

Project description

git_count

A powerful Git commit activity visualization tool with detailed repository insights, beautiful ASCII charts, and advanced visualizations.

PyPI Downloads Python Version

Installation

pip install git-count

Features

Core Features

  • Visualize git commit activity with ASCII bars
  • Group commits by day, month, or year
  • Filter commits by author
  • Date range filtering
  • Directory-specific analysis
  • Detailed repository insights
  • Commit streak tracking (current and longest streaks)
  • File churn analysis (identify hotspot files)
  • Code velocity metrics (lines added/removed per period)
  • Multiple output formats (text, JSON, CSV, SVG)

Advanced Visualizations

  • GitHub-style Contribution Heatmap - 365-day calendar view of commit activity
  • Sparklines - Compact trend visualization for commit patterns
  • Box Plots - Statistical distribution of commit activity
  • Violin Plots - Density visualization for hourly/daily patterns
  • SVG Export - Publication-ready vector graphics
  • Emoji Mode - Visual indicators for enhanced readability
  • Desktop Notifications - Milestone alerts for achievements
  • Progress Bars - Real-time feedback for large repository analysis

Usage

# Basic usage
git-count

# Show commits by month
git-count -p month

# Filter by author
git-count -a "uday"

# Show commits since a specific date
git-count -s "2023-01-01"

# Show detailed repository insights
git-count -i

# Output as JSON
git-count -o json

# Show most frequently changed files
git-count -c

# Show code velocity (lines added/removed)
git-count -v

# Show velocity by month
git-count -v -p month

Options

Basic Options

  • -p, --period: Group commits by period (day/month/year)
  • -a, --author: Filter commits by author
  • -s, --since: Show commits more recent than a specific date
  • -u, --until: Show commits older than a specific date
  • -d, --directory: Analyze commits in a specific directory
  • -m, --max-commits: Limit the number of commits to display
  • -o, --output: Output format (text/json/csv/svg)

Analysis Options

  • -i, --insights: Show detailed repository insights
  • -c, --churn: Show most frequently changed files (hotspots)
  • -v, --velocity: Show code velocity (lines added/removed per period)
  • -H, --heatmap: Show GitHub-style contribution heatmap

Visualization Options

  • -e, --emoji: Enable emoji mode for visual indicators
  • --sparkline: Show sparkline trends in insights
  • --boxplot: Show box plot for commit distribution
  • --violinplot: Show violin plot for hourly/daily patterns

Utility Options

  • -n, --notify: Send desktop notifications for milestones
  • -q, --quiet: Disable progress bars
  • -V, --version: Show version number
  • -h, --help: Show help message

Advanced Examples

# Show GitHub-style contribution heatmap
git-count -H

# Enable emoji mode for better visuals
git-count -i -e

# Full analysis with advanced visualizations
git-count -i -c -v --sparkline --boxplot --violinplot -e

# Show heatmap with emoji mode
git-count -H -e

# Export to SVG for presentations
git-count -o svg

# Get desktop notifications for milestones
git-count -i -n

# Combine multiple filters with visualizations
git-count -a "uday" -s "2024-01-01" -p month -i --sparkline -e

# Export data for further analysis
git-count -o json > commits.json
git-count -o csv > commits.csv

# Analyze specific directory changes
git-count -d src/ -p month -H

# Get insights for team productivity with emoji mode
git-count -i -s "2025-01-01" -e

# Find hotspot files changed by a specific author
git-count -c -a "uday" -s "2024-01-01" -e

# Full analysis: insights + churn + velocity + heatmap
git-count -i -c -v -H -p month -e

Customization

You can customize colors and emoji settings by creating a ~/.gitbarsrc configuration file:

[colors]
reset = \033[0m
title = \033[1;36m
date = \033[0;32m
number = \033[0;33m
bar = \033[0;34m
alert = \033[0;31m

[emoji]
enabled = true

What You'll See

Insights Mode (-i)

  • Project timeline and age
  • Average commits per day
  • Current and longest commit streaks
  • Most active hours and days
  • Commit types distribution (features, fixes, docs, etc.)
  • Top contributors
  • Activity patterns with visual charts
  • NEW: Sparkline trends (--sparkline)
  • NEW: Box plot distribution (--boxplot)
  • NEW: Violin plot patterns (--violinplot)

Contribution Heatmap (-H)

  • GitHub-style 365-day calendar view
  • Color-coded intensity levels (gray to red)
  • Weekly and monthly patterns
  • Visual commit frequency distribution

Churn Mode (-c)

  • Most frequently changed files ranked by number of commits
  • Visual bar chart of file change frequency
  • Identifies code hotspots

Velocity Mode (-v)

  • Lines added/removed per period with color-coded bars
  • Total lines added, removed, and net change
  • Trend indicators with emoji mode

Emoji Mode (-e)

  • 🔥 Hot files and streak indicators
  • 🚀 Velocity and activity metrics
  • ⭐ Top contributors with 🏆 trophy for #1
  • 📈 Trending up, 📉 trending down indicators
  • ✨ Enhanced visual experience

SVG Export (-o svg)

  • Publication-ready vector graphics
  • Responsive and scalable charts
  • Professional color schemes
  • Embeddable in documentation

Desktop Notifications (-n)

  • 🎉 Milestone alerts (100, 500, 1000+ commits)
  • 🔥 Streak achievements (30+ days)
  • Non-intrusive notifications

Requirements

  • Python 3.8+
  • Git must be installed and repository must be a valid Git repository

License

MIT License

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

git_count-0.4.0.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

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

git_count-0.4.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file git_count-0.4.0.tar.gz.

File metadata

  • Download URL: git_count-0.4.0.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for git_count-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b57e04eed546075b62113b3af8f76a7d8cf981cd7a0ca511a1219eec401c10f8
MD5 ec8be15f131535dde72fb2e7055937d4
BLAKE2b-256 d8a1005c040f68b749899ccc7b72a8343df27ce7a76dd88d7808f6eeb653abe3

See more details on using hashes here.

File details

Details for the file git_count-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: git_count-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for git_count-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70bd693a2334e7fdc399b660e656d8d9f62836958c56eb620f3a8f4153080656
MD5 ed2593e5e48ef35999142ea352acadb9
BLAKE2b-256 9e5545f52d667565b081aafb81576df66991579cac0347c9758affb8dd90a873

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