Git-commitdatums wijzigen
Stap voor stap: installeer git-edit-date, exporteer je branch naar CSV, bewerk datums in een spreadsheet, pas de herschrijving toe en push veilig.
Wanneer heb je dit nodig?
- Commits tonen UTC-tijdstempels van een CI-runner in plaats van je lokale tijdzone
- Door een afwijkende laptopklok heeft een reeks commits de verkeerde tijd
- Het e-mailadres of de naam van de auteur klopt niet bij meerdere commits op een featurebranch
- Je wilt elke datumwijziging in een spreadsheet controleren voordat je de geschiedenis herschrijft
Stap 1 — Exporteer de branch
Vanuit je repository, op de branch die je wilt herschrijven:
git-edit-date export -o commits.csv
Hiermee wordt de geschiedenis van de huidige branch (git rev-list --reverse HEAD)
naar een CSV-bestand geëxporteerd. Alleen commits die vanuit HEAD bereikbaar zijn, worden opgenomen.
Stap 2 — Bewerk de CSV
Open commits.csv in Excel, LibreOffice Calc of een andere spreadsheet-editor.
CSV-kolommen
hash— oorspronkelijke commit-SHA (alleen als referentie; niet bewerken)author_name— weergegeven naam van de commitauteurauthor_email— e-mailadres van de commitauteurauthor_date— het moment waarop het werk oorspronkelijk is uitgevoerd (RFC3339)committer_date— het moment waarop het commitobject is gemaakt (RFC3339)message— commitbericht (alleen als referentie; wordt bij apply niet gewijzigd)
Datums gebruiken de RFC3339-indeling, bijvoorbeeld 2024-03-05T14:30:00+01:00.
Meestal wil je dat author_date en committer_date gelijk zijn.
Lees de FAQ over auteursdatum versus committerdatum.
author_email,author_date,committer_date
alice@wrong.com,2024-03-06T03:14:00Z,2024-03-06T03:14:00Z
author_email,author_date,committer_date
alice@work.com,2024-03-05T14:30:00+01:00,2024-03-05T14:30:00+01:00
Je kunt slechts enkele rijen bewerken — ongewijzigde rijen behouden hun oorspronkelijke metadata. Sla het bestand na afloop op als CSV.
Stap 3 — Pas toe en push
apply vereist een schone working tree, tenzij je -allow-dirty meegeeft:
git-edit-date apply -file=commits.csv
Controleer het resultaat:
git log --format=fuller -3
Als de branch al was gepusht, werk je de remote veilig bij:
git push --force-with-lease
Checklist voor veilig pushen
- Controleer of je op de juiste branch zit (
git branch --show-current) - Zorg dat niemand anders actief naar deze branch pusht
- Gebruik
--force-with-lease, niet alleen--force - Herschrijf nooit gedeelde of beveiligde branches zonder instemming van het team
- Houd er rekening mee dat GPG-handtekeningen op herschreven commits ongeldig worden
git-edit-date installeren
curl -LO https://giteditdate.com/git-edit-date_amd64.deb
sudo dpkg -i git-edit-date_amd64.deb
Commandoreferentie: CLI-docs · Veelgestelde vragen: FAQ · Handleidingen: meerdere commits, auteursdatum