Смена e-mail и имени в истории Git

Допустим, что вы пишете какой-то проект, и в какой-то момент вам захотелось поменять e-mail либо ваше имя в истории Git. Причины могут быть самыми разными: от попытки скрыть e-mail до чисто эстетического перфекционизма. В Git есть возможность переписать историю, но пользоваться ей стоит с осторожностью. Если вы точно уверены, что проект пишете только вы, то можете смело пользоваться этим способом. Если же вы работаете в команде, или у вас есть форки по какой-то другой причине, то тысячу раз подумайте над тем, стоит ли менять историю Git, так как после смены истории все остальные разработчики и форки не смогут просто так залить свои изменения в основной репозиторий. Всем им придётся выкачивать исходники заново, так как репозиторий будет уже совсем другой, с другой историей и другими идентификаторами коммитов.

Если я вас всё ещё не отговорил от намерения сменить имя или e-mail в истории Git, то давайте приступим.

Для начала лучше выкачать чистую свежую  bare копию вашего репозитория командой

Вместо адреса нужно подставить свой адрес сервера и репозитория.

Зайдите в каталог с вашим репозиторием Git:

Создайте файл «rewriteauthor.sh» и вставьте туда следующее содержимое:

Поменяйте значения OLD_EMAIL (старый e-mail), CORRECT_NAME (новое, правильное имя) и CORRECT_EMAIL (новый, правильный e-mail) на свои.

Запустите скрипт на выполнение:

Проверьте получившуюся историю в репозитории и сделайте push на сервер:

Вот и всё. История переписана. Имейте в виду, что это теперь другой репозиторий, и всем остальным, кто с ним работает, нужно его выкачать заново.

Один комментарий к “Смена e-mail и имени в истории Git”

  1. В фильме «Коллетт» героиня тоже начала представляться новым именем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *