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

Es gibt mehrere Möglichkeiten, die Commit-Daten von git zu ändern. Hier ist ein ehrlicher Vergleich, der Ihnen bei der Auswahl des richtigen Werkzeugs helfen soll: von git commit --amend für einen Commit zu CSV-Massenbearbeitungen für einen ganzen Zweig.

Vergleichstabelle

git-edit-date git-Commit --amend interaktiv rebase filter-branch filter-repo
Massenbearbeitungsdaten CSV in der Tabelle Nur letzter Commit Ein Commit nach dem anderen Shell-Env-Filter-Skript Python-Rückrufskript
Bearbeiten Sie die E-Mail-Adresse des Autors Ja Nur letzter Commit Manuell pro Commit env-filter Mailmap / Rückruf
Visuelle Überprüfung vor apply Tabelle No No No No
Lernkurve Niedrig Niedrig Mittel Hoch Mittel
Offiziell gewartet Aktiv Eingebaut in git Eingebaut in git Veraltet Empfohlener Ersatz
Am besten für Massenkorrekturen auf Zweigstellenebene über CSV Korrigieren Sie nur den Tipp-Commit 1–3 aktuelle Commits Ältere one-off-Skripte Komplexe Repo-weite Migrationen

Wann ist git-edit-date zu verwenden?

Wann zu verwenden git commit --amend

Amend stoppt bei einem Commit. Wenn Sie Termine in einer Filiale festlegen müssen, Benutze die CSV-Tutorial Anstatt die Stopps amend oder rebase zu wiederholen.

Wann sollte interaktives rebase verwendet werden?

Wann ist filter-branch zu verwenden?

Das solltest du wahrscheinlich nicht. Git offiziell veraltet filter-branch für filter-repo. Es bleibt bei alten Tutorials und Stack Overflow-Antworten, aber die Env-Filter-Syntax ist beim Umschreiben von Datumsangaben fehleranfällig.

Wann ist filter-repo zu verwenden?

Für komplexe Fälle ist filter-repo das richtige moderne Werkzeug. git-edit-date gewinnt, wenn Sie eine Tabellenkalkulation und eine schnelle Lösung auf Zweigstellenebene benötigen.

Versuchen Sie 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

Schritt für Schritt: tutorial · Anleitungen: blog · Häufige Fragen: FAQ · Befehle: docs