git-edit-date vs rebase, filter-branch & filter-repo

There are several ways to change git commit dates. Here is an honest comparison to help you pick the right tool.

Comparison table

git-edit-date interactive rebase filter-branch filter-repo
Bulk edit dates CSV in spreadsheet One commit at a time Shell env-filter script Python callback script
Edit author email Yes Manual per commit env-filter mailmap / callback
Visual review before apply Spreadsheet No No No
Learning curve Low Medium High Medium
Officially maintained Active Built into git Deprecated Recommended replacement
Best for Branch-level bulk fixes via CSV 1–3 recent commits Legacy one-off scripts Complex repo-wide migrations

When to use git-edit-date

When to use interactive rebase

When to use filter-branch

You probably shouldn’t. Git officially deprecated filter-branch in favor of filter-repo. It remains in old tutorials and Stack Overflow answers, but the env-filter syntax is error-prone for date rewrites.

When to use filter-repo

For complex cases, filter-repo is the right modern tool. git-edit-date wins when you want a spreadsheet and a quick branch-level fix.

Try git-edit-date

curl -LO https://giteditdate.com/git-edit-date_amd64.deb
sudo dpkg -i git-edit-date_amd64.deb
git-edit-date export -o commits.csv

Step-by-step: tutorial · Common questions: FAQ · Commands: docs