newren/git-filter-repo

Quickly rewrite git repository history (filter-branch replacement)

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 30 minutes ago
Added to GitGenius on September 4th, 2026
Created on August 21st, 2018
Open Issues & Pull Requests: 100 (+0)
GitHub issues: Enabled
Number of forks: 1,001
Total Stargazers: 13,251 (+0)
Total Subscribers: 71 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 14.3 days
Mean response time: 115.9 days
90th percentile: 382.4 days
Tracked items: 123

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 5% of issues opened in the past year have been closed. Three people close 79% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 53
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 624 days
Stale 30+ days: 48
Stale 90+ days: 41

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (6)
  • enhancement (5)
  • good first issue (3)
  • docs (2)
  • Windows (1)

Detailed Description

git-filter-repo is a command-line tool for rewriting git repository history that replaces git filter-branch with better performance and more capabilities.

The tool solves the problem of needing to modify git history—removing sensitive data, restructuring repositories, or cleaning up commits—in cases where the built-in git filter-branch is too slow or lacks necessary features. It works by providing both a straightforward command-line interface for common rewriting tasks and an underlying Python library that developers can use to build specialized history rewriting tools for their own needs.

Most users will interact with filter-repo as a simple command-line tool, though the README notes it also exposes a library for creating entirely new history rewriting tools. The README explicitly compares it to git filter-branch, BFG Repo Cleaner, and fast-export/fast-import approaches. Against filter-branch, the tool offers significantly better performance and far more capabilities with a design that scales beyond trivial rewriting cases. The git project itself now recommends filter-repo instead of filter-branch. Installation is minimal for basic use—the entire tool is a single Python script that can be placed in your PATH—though more involved setup is available for those wanting to use it as a library, install documentation, or run contributed examples.

The project maintains a single-file Python implementation to keep basic installation trivial across many systems. The tool requires git 2.36.0 or later and Python 3.6 or later. The README includes a comprehensive user manual and points to contributed example scripts demonstrating specialized use cases built on the library.