#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
Затем выполните принудительное нажатие и попросите своего сотрудника обновить свой форк, если таковой существует.