Измените автора и адрес электронной почты в Git

#github

#github

Вопрос:

введите описание изображения здесьЯ менял информацию об авторе git внутри терминала, и по какой-то причине обновление удалило электронное письмо из коммита, и теперь я не могу отменить это изменение и не могу добавить адрес электронной почты в этот коммит.

В коммите указан автор, которого я не могу изменить, а адрес электронной почты, связанный с коммитом, — <>.

Может кто-нибудь, пожалуйста, посоветовать, как я могу добавить адрес электронной почты этому автору?

введите описание изображения здесь

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

1. Попробуйте использовать git filter-branch для пакетного редактирования комментариев.

2. Однако, похоже, вы только что пришли из сбоя git branch-filter с несбалансированными " и ' s.

3. Я сделал, есть ли способ изменить имя автора и повторно добавить адрес электронной почты?

Ответ №1:

Вы можете пакетно изменять историю фиксаций с помощью опции nuclear git filter-branch . Используя --env-filter , вы можете изменить автора и информацию об электронной почте. Смотрите Информацию об изменении автора — GitHub для получения дополнительной информации. Поскольку сейчас у вас нет информации об электронной почте, вы можете уловить беспорядочное название для оценки необходимости переписывания.

Например,

 #!/bin/sh
git filter-branch -f --env-filter '
OLD_NAME="Your messy name" # you may need to escape the " char in the head and tail of that messy
CORRECT_NAME="MatthewLRichardson"
CORRECT_EMAIL="preventing@email.spoiler"
if [ "$GIT_COMMITTER_NAME" = "#OLD_NAME" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "#OLD_NAME" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
  

Затем выполните принудительное нажатие и попросите своего сотрудника обновить свой форк, если таковой существует.