git-edit-date a amend, rebase, filter-branch i filter-repo

Daty commitów Git można zmienić na kilka sposobów. To uczciwe porównanie pomoże Ci wybrać właściwe narzędzie — od git commit --amend dla jednego commitu po zbiorczą edycję CSV całej gałęzi.

Tabela porównawcza

git-edit-date git commit --amend interaktywny rebase filter-branch filter-repo
Zbiorcza edycja dat CSV w arkuszu Tylko ostatni commit Jeden commit naraz Skrypt env-filter powłoki Skrypt wywołania zwrotnego w Pythonie
Edycja e-maila autora Tak Tylko ostatni commit Ręcznie dla każdego commitu env-filter mailmap / wywołanie zwrotne
Wizualna kontrola przed zastosowaniem Arkusz Nie Nie Nie Nie
Próg wejścia Niski Niski Średni Wysoki Średni
Oficjalne utrzymanie Aktywne Wbudowane w git Wbudowane w git Przestarzałe Zalecany zamiennik
Najlepsze zastosowanie Zbiorcze poprawki gałęzi przez CSV Poprawa tylko commitu na końcu gałęzi 1–3 ostatnie commity Starsze skrypty jednorazowe Złożone migracje całego repozytorium

Kiedy użyć git-edit-date

Kiedy użyć git commit --amend

Amend działa na jednym commicie. Jeśli musisz poprawić daty w całej gałęzi, skorzystaj z Tutoriala CSV, zamiast wielokrotnie zatrzymywać amend lub rebase.

Kiedy użyć interaktywnego rebase

Kiedy użyć filter-branch

Prawdopodobnie nigdy. Git oficjalnie uznał filter-branch za przestarzałe na rzecz filter-repo. Nadal występuje w starych poradnikach i odpowiedziach na Stack Overflow, ale składnia env-filter przy przepisywaniu dat jest podatna na błędy.

Kiedy użyć filter-repo

W złożonych przypadkach filter-repo jest właściwym, nowoczesnym narzędziem. git-edit-date wygrywa, gdy chcesz użyć arkusza i szybko poprawić pojedynczą gałąź.

Wypróbuj 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

Krok po kroku: Tutorial · Poradniki: Blog · Częste pytania: FAQ · Polecenia: Docs