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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b57e04eed546075b62113b3af8f76a7d8cf981cd7a0ca511a1219eec401c10f8
|
|
| MD5 |
ec8be15f131535dde72fb2e7055937d4
|
|
| BLAKE2b-256 |
d8a1005c040f68b749899ccc7b72a8343df27ce7a76dd88d7808f6eeb653abe3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70bd693a2334e7fdc399b660e656d8d9f62836958c56eb620f3a8f4153080656
|
|
| MD5 |
ed2593e5e48ef35999142ea352acadb9
|
|
| BLAKE2b-256 |
9e5545f52d667565b081aafb81576df66991579cac0347c9758affb8dd90a873
|