Страницы

Поиск по вопросам

вторник, 12 марта 2019 г.

Как изменить эл. почту автора во всём git-репозитории для всех снимков?

Как изменить эл. почту автора во всём git-репозитории для всех снимков?


Ответ

Как переписать всю историю с новым адресом почты.
Обратите внимание: коммиты нельзя редактировать, поэтому фактически это будет совершенно новая история. Переписывать историю может быть вредно, почитайте об этом подробнее
Для переписывания коммитов сразу и помногу в Git есть такая команда:
git filter-branch
Для удобства можно использовать вот такой git alias (автор — github.com/brauliobo). Он переписывает историю, меняя имя или адрес электронной почты автора.
Этой командой alias добавляется (выполните один раз):
git config --global alias.change-commits "!f() { VAR=$1; OLD=$2; NEW=$3; shift 3; git filter-branch --env-filter \"if [[ \\\"$`echo $VAR`\\\" = '$OLD' ]]; then export $VAR='$NEW'; fi\" $@; }; f "
Теперь можно менять автора так
git change-commits GIT_AUTHOR_NAME "старое имя" "новое имя"
Аналогично, почту:
git change-commits GIT_AUTHOR_EMAIL "old@email.com" "new@email.com"
Можно указать диапазон коммитов:
git change-commits GIT_AUTHOR_EMAIL "old@email.com" "new@email.com" HEAD~10..HEAD
(эта часть ответа написана на основе ответа на англоязычном SO)
Как узнавать автора по разным адресам электронной почты
Популярные git-хостинги (GitHub, GitLab, Bitbucket) позволяют добавить дополнительные адреса электропочты, по которым они будут распознавать ваши коммиты. Это имеет смысл, например, когда на рабочем месте для логина вы используете свою рабочую почту, а коммиты делаете с персональной почтой, чтобы не перенастраивать Git.
Возможно, вместо переписывания коммитов вам будет достаточно зарегистрировать почтовый адрес, указанный в коммитах, в интерфейсе вашего git-хостинга.
GitHub: Adding an email address to your GitHub account GitLab: Profile settings Bitbucket: Set email aliases

Комментариев нет:

Отправить комментарий