Zmień datę commitu Git
git-edit-date to darmowe narzędzie CLI dla Linuksa, które zmienia daty commitów, nazwę autora
i e-mail w bieżącej gałęzi. Wyeksportuj historię do CSV, edytuj znaczniki czasu w Excelu lub
LibreOffice i zastosuj zmiany jednym poleceniem — bez git commit --amend i bez interaktywnego rebase.
Zmieniaj zbiorczo datę autora, datę committera, nazwę autora
i e-mail. Działa zarówno dla pojedynczego commitu na końcu gałęzi, jak i dla dziesiątek commitów w bieżącej gałęzi —
również dla już wypchniętej historii (za pomocą --force-with-lease).
Dlaczego CSV?
- Zbiorcza edycja — zmieniaj daty wielu commitów w arkuszu
- Wizualna kontrola — sortuj według daty, wykrywaj przesunięcia stref czasowych, porównuj znaczniki czasu autora i committera
- Jedno polecenie do zastosowania zmian — edytuj CSV, uruchom
applyi gotowe
Jesteś tu pierwszy raz? Zacznij od Tutoriala krok po kroku lub przeczytaj FAQ.
Przykład
Załóżmy, że log wygląda tak — błędny e-mail, znaczniki czasu UTC o 3 w nocy:
a1b2c3d Alice <alice@wrong.com> 2024-03-06 03:14 +0000 Fix login
e4f5a6b Alice <alice@wrong.com> 2024-03-06 03:15 +0000 Add tests
9f8e7d6 Alice <alice@work.com> 2024-03-05 14:30 +0100 Fix login
c5b4a39 Alice <alice@work.com> 2024-03-05 15:00 +0100 Add tests
Co się zmieniło: e-mail autora i daty. Komunikaty pozostały takie same; hashe commitów są nowe (historia została przepisana).
Jak to zrobić
1. Wyeksportuj bieżącą gałąź:
git-edit-date export -o commits.csv
2. Otwórz CSV i popraw wybrane pola:
author_email,author_date,committer_date
alice@wrong.com,2024-03-06T03:14:00Z,2024-03-06T03:14:00Z
alice@wrong.com,2024-03-06T03:15:00Z,2024-03-06T03:15:00Z
author_email,author_date,committer_date
alice@work.com,2024-03-05T14:30:00+01:00,2024-03-05T14:30:00+01:00
alice@work.com,2024-03-05T15:00:00+01:00,2024-03-05T15:00:00+01:00
3. Zastosuj i wypchnij zmiany:
git-edit-date apply -file=commits.csv
git push --force-with-lease
Pełna instrukcja: jak zmieniać daty commitów Git.
Zmień datę autora
Git przechowuje dwa znaczniki czasu: datę autora (kiedy napisano zmianę) oraz
datę committera (kiedy utworzono obiekt commitu). W CSV edytuj
author_date (i opcjonalnie author_name /
author_email) niezależnie od committer_date.
Więcej szczegółów: jak zmienić datę autora w Git · data autora a data committera.
Instalacja
curl -LO https://giteditdate.com/git-edit-date_amd64.deb
sudo dpkg -i git-edit-date_amd64.deb
Ważne informacje
- Przepisuje SHA commitów wyłącznie w bieżącej gałęzi
- Unieważnia podpisy GPG przepisanych commitów
- Jeśli gałąź została już wypchnięta, wymaga
git push --force-with-lease