git-history is a command-line tool that turns the history of structured data files in a Git repository into a SQLite database.
It’s designed for Git scraping workflows where JSON, CSV, TSV, or converted data is committed over time, making it possible to inspect how records have changed across commits using standard SQL queries.
This is free and open source software.
Key Features
- Analyzes the history of an individual file in a Git repository and writes the results to SQLite.
- Works with JSON arrays and CSV/TSV data, with options for specifying CSV dialects and encodings.
- Can de-duplicate records by one or more identifier columns to track item-level changes over time.
- Records commits, item versions, changed columns, and detailed views for querying historical changes.
- Supports local repositories and remote repositories supplied with the –repo option.
- Offers conversion hooks for reshaping non-standard JSON, XML, CSV, and other structured formats using Python code.
- Can skip or start from specific commits, ignore columns, store full versions, and use namespaces for multiple file histories in one database.
Website: github.com/simonw/git-history
Support:
Developer: Simon Willison
License: Apache License 2.0

git-history is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Git Tools for Diff Review and Repository History | |
|---|---|
| difftastic | Structural diff tool that compares files based on their syntax |
| git-filter-repo | Quickly rewrite git repository history |
| onefetch | Displays information about a local Git repository |
| git-stats | Local git statistics including GitHub-like contributions calendars |
| diff-so-fancy | Attractive diffs with diff-highlight and more |
| BFG Repo-Cleaner | Clean unwanted data from Git repository history |
| git-delta | Viewer for git and diff output |
| gitlogue | Cinematic Git commit replay tool |
| git-quick-stats | Access various statistics in a git repository |
| git-who | Command-line Git analysis tool |
| git-standup | Recall what you did on the last working day |
| git-of-theseus | Analyze how a Git repo grows over time |
| git-sizer | Compute various size metrics for a git repository |
| diffnav | Git diff pager based on delta but with a file tree, à la GitHub |
| critique | Terminal UI for reviewing git diffs |
| git-big-picture | Visualization tool for Git repositories |
| hercules | Gain advanced insights from Git repository history |
| keifu | TUI that visualizes Git commit graphs |
| git-fame | Git repository collaborators sorted by contributions |
| needle | Highlights GitHub PRs |
| mergiraf | Git merge driver |
| git-history | Analyze Git history using SQLite |
| ec | Terminal Git mergetool |
| diffr | Word-by-word diff highlighting utility |
| git-scope | Fast TUI dashboard to view the git status of all your repositories |
| mamediff | Manages unstaged and staged Git diffs |
| deadbranch | Keep Git repositories tidy |
| GitTop | Lightweight desktop client for GitHub notifications |
| git-heatmap | Generates a customizable heatmap |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

