git-edit-date vs amend, 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 — from git commit --amend for one commit to CSV bulk edits for a whole branch.

Comparison table

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

When to use git-edit-date

When to use git commit --amend

Amend stops at one commit. If you need to fix dates across a branch, use the CSV tutorial instead of repeating amend or rebase stops.

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 · Guides: blog · Common questions: FAQ · Commands: docs