avhimkov
9/30/2016 - 11:16 AM

Так я решил проблему с "раздвоением личности" в своем проекте. Если вдруг нужно заменить автора полностью, то достаточно добавить GIT_COMMIT

Так я решил проблему с "раздвоением личности" в своем проекте. Если вдруг нужно заменить автора полностью, то достаточно добавить 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