Чтобы изменить автора коммита в Git, но сохранить время предыдущего коммита, можно воспользоваться командой git filter-branch.
Вот подробная инструкция, как выполнить эту операцию:
1. Сначала, создайте резервную копию репозитория, чтобы в случае проблем у вас был доступ к исходным данным.
2. Откройте терминал или командную строку и перейдите в каталог, содержащий ваш репозиторий.
3. Выполните следующую команду:
git filter-branch -f --env-filter ' if [ "$GIT_COMMITTER_EMAIL" = "<старый email автора>" ]; then export GIT_COMMITTER_NAME="<новое имя автора>"; export GIT_COMMITTER_EMAIL="<новый email автора>"; fi if [ "$GIT_AUTHOR_EMAIL" = "<старый email автора>" ]; then export GIT_AUTHOR_NAME="<новое имя автора>"; export GIT_AUTHOR_EMAIL="<новый email автора>"; fi' HEAD
В этой команде вы должны заменить <старый email автора>
на текущий email автора коммита, <новое имя автора>
на новое имя автора и <новый email автора>
на новый email автора.
4. Git выполнит операцию переписывания истории, заменяя старые авторы на новых во всех коммитах. Это может занять какое-то время в зависимости от количества коммитов в вашем репозитории.
5. После завершения команды git filter-branch вы должны проверить изменения, чтобы убедиться, что авторы коммитов были изменены правильно. Для этого выполните команду git log и просмотрите историю коммитов.
Примечание: Если вам нужно изменить только имя или только email автора, вы можете использовать только один из блоков if в команде git filter-branch.
6. После проверки изменений вы можете удалить резервную копию, созданную в первом шаге.
Вот как можно выполнить это, если вы находитесь в каталоге резервной копии:
rm -rf <название каталога с резервной копией>
Теперь у вас должен быть измененный репозиторий с новыми авторами коммитов, но сохраненным временем предыдущих коммитов.