Frequently asked questions
Common questions about changing git commit dates, author metadata, and rewriting branch history with git-edit-date.
Can I change git commit dates without interactive rebase?
Yes. Export your branch history to CSV with git-edit-date export,
edit author_date and committer_date in a spreadsheet,
then run git-edit-date apply. This avoids stopping at every commit
during an interactive rebase. See the tutorial.
What is the difference between author date and committer date?
Author date is when the work was originally done. Committer date is when the commit object was written to the repository. Rebase, cherry-pick, and amend can change the committer date. git-edit-date lets you set both independently via CSV.
Does git-edit-date change commit messages?
No. The message column in the CSV is for reference only.
Apply updates author name, author email, author date, and committer date — not messages.
Will GPG signatures break?
Yes. Rewriting history creates new commit objects with new SHAs. Any GPG signatures on the original commits become invalid and must be re-signed if you need signed commits.
Can I edit only some commits?
Yes. Leave rows unchanged if you only want to fix specific commits. The tool rewrites the full branch history but only applies the metadata changes present in your CSV.
Is it safe to rewrite shared or protected branches?
Generally no. History rewrites disrupt collaborators and can violate branch protection rules.
Use git-edit-date on personal or feature branches, coordinate with your team,
and never force-push to main without explicit agreement.
Is git filter-branch still the way?
filter-branch works but is officially deprecated and awkward for bulk date edits.
git-edit-date is simpler when you want spreadsheet-based review.
For complex repo-wide migrations, git filter-repo may be a better fit.
Excel vs LibreOffice — any CSV gotchas?
Export uses double-quoted CSV fields so commas and newlines in messages stay safe.
Save as CSV, not XLSX. Keep RFC3339 date format with timezone offset.
Do not edit the hash column.
Do I need to force push?
If the branch was already pushed, yes — commit SHAs change after a rewrite.
Use git push --force-with-lease instead of bare --force.
It refuses to push if someone else updated the remote since your last fetch.