Так я решил проблему с "раздвоением личности" в своем проекте. Если вдруг нужно заменить автора полностью, то достаточно добавить GIT_COMMITTER_EMAIL="new email" и GIT_AUTHOR_EMAIL="new email". Перед использованием, убедитесь, что все изменения вытянуты и закомичены. git shortlog -se — выводит список авторов.
git filter-branch --force --env-filter '
if ["$GIT_COMMITTER_NAME" = "nsept"];
then
GIT_COMMITTER_NAME="Nsept";
GIT_AUTHOR_NAME="Nsept";
fi' -- --all
git push --force
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL=""
CORRECT_NAME="Dmitry"
CORRECT_EMAIL="avhimkov@mail.ru"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags