git-edit-date против изменения, перебазирования, filter-branch и filter-repo

Есть несколько способов изменить даты коммита git. Вот честное сравнение, которое поможет вам выбрать правильный инструмент: из git commit --amend за один коммит на CSV массовые правки на целую ветку.

Сравнительная таблица

git-edit-date git коммит --изменить интерактивное перебазирование filter-branch filter-repo
Массовое изменение дат CSV в электронной таблице Только последний коммит Один коммит за раз Скрипт env-фильтра оболочки Скрипт обратного вызова Python
Изменить адрес электронной почты автора Да Только последний коммит Руководство по коммиту env-фильтр карта почты/обратный звонок
Визуальная проверка перед применением электронная таблица Нет Нет Нет Нет
Кривая обучения Низкий Низкий Середина Высокий Середина
Officially поддерживается Активный Встроенный в git Встроенный в git Устарело Рекомендуемая замена
Лучшее для Массовые исправления на уровне ветки через CSV Исправьте только наконечник коммит 1–3 последних коммита Устаревшие одноразовые сценарии Сложные миграции по всему репо

Когда использовать git-edit-date

Когда использовать git commit --amend

Изменение останавливается на одном коммите. Если вам нужно зафиксировать даты в ветке, использовать Учебное пособие по CSV вместо повторения остановок изменения или перебазирования.

Когда использовать интерактивную перебазировку

Когда использовать filter-branch

Вероятно, вам не следует этого делать. git officially устарел filter-branch в пользу filter-repo. Осталось в старых туториалах и ответах Stack Overflow, но синтаксис env-filter подвержен ошибкам при перезаписи даты.

Когда использовать filter-repo

Для сложных случаев filter-repo — подходящий современный инструмент. git-edit-date выигрывает, когда вам нужна электронная таблица и быстрое исправление на уровне ветки.

Попробуйте 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

Шаг за шагом: учебник · Путеводители: блог · Общие вопросы: Часто задаваемые вопросы · Команды: документы