So ändern Sie die Commit-Daten von git
Schritt für Schritt: Installieren git-edit-date, export Ihr Zweig zu CSV, Bearbeiten Sie Daten in einer Tabelle, apply, schreiben Sie sie neu und übertragen Sie sie sicher.
Wenn Sie das brauchen
- Commits zeigen UTC-Zeitstempel von einem CI-Läufer anstelle Ihrer lokalen Zeitzone an
- Die Abweichung der Laptop-Uhr hinterließ einen Block von Commits zur falschen Zeit
- Die E-Mail-Adresse oder der Name des Autors ist bei vielen Commits in einem Feature-Branch falsch
- Sie möchten jede Datumsänderung in einer Tabelle überprüfen, bevor Sie den Verlauf neu schreiben
Schritt 1 – Exportieren Sie den Zweig
Von Ihrem Repo aus auf dem Zweig, den Sie umschreiben möchten:
git-edit-date export -o commits.csv
Dadurch wird der aktuelle Filialverlauf exportiert (git rev-list --reverse HEAD)
in eine CSV-Datei. Nur Commits sind erreichbar von HEAD sind im Preis inbegriffen.
Schritt 2 – Bearbeiten Sie CSV
Open commits.csv in Excel, LibreOffice Calc oder einem beliebigen Tabellenkalkulationseditor.
CSV-Spalten
hash– Original-Commit SHA (nur Referenz; nicht bearbeiten)author_name— Anzeigename des Commit-Autorsauthor_email– E-Mail des Autors festlegenauthor_date— wann die Arbeit ursprünglich erledigt wurde (RFC3339)committer_date— wann das Commit-Objekt erstellt wurde (RFC3339)message— message festschreiben (nur Referenz; nicht geändert bei apply)
Für Datumsangaben wird beispielsweise das Format RFC3339 verwendet 2024-03-05T14:30:00+01:00.
In den meisten Fällen möchten Sie author_date and committer_date zusammenpassen.
Siehe die FAQ zum Autorendatum vs. Committer-Datum.
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
Sie können nur einige Zeilen bearbeiten – unveränderte Zeilen behalten ihre ursprünglichen Metadaten. Speichern Sie die Datei anschließend unter dem Namen CSV.
Schritt 3 – Auftragen und drücken
Für „Anwenden“ ist ein sauber funktionierender Baum erforderlich, es sei denn, Sie bestehen -allow-dirty:
git-edit-date apply -file=commits.csv
Überprüfen Sie das Ergebnis:
git log --format=fuller -3
Wenn der Zweig bereits gepusht wurde, aktualisieren Sie die Fernbedienung sicher:
git push --force-with-lease
Checkliste für sicheres Pushen
- Bestätigen Sie, dass Sie sich im richtigen Zweig befinden (
git branch --show-current) - Stellen Sie sicher, dass niemand sonst aktiv auf diesen Zweig drängt
- Use
--force-with-lease, nicht nackt--force - Schreiben Sie niemals freigegebene oder geschützte Zweige ohne Teamvereinbarung neu
- Erwarten Sie, dass GPG-Signaturen bei neu geschriebenen Commits ungültig werden
Installieren Sie git-edit-date
curl -LO https://giteditdate.com/git-edit-date_amd64.deb
sudo dpkg -i git-edit-date_amd64.deb
Befehlsreferenz: CLI-Dokumente · Häufige Fragen: FAQ · Anleitungen: mehrere Commits, Datum des Autors