Git push error: ожидаемый отправитель электронной почты 'xxxx', но обнаружил 'yyyy' - PullRequest
0 голосов
/ 11 июля 2019

При выполнении git push я получаю следующую ошибку:

remote: Push rejected.
remote:
remote: refs/heads/features/PLA-1458: 70f23668f033dd59daa116a23c6e63dc0342890f: expected committer email 'j.c@xxxx.com' but found 'j.c@yyyy.com'
remote:
remote: refs/heads/features/PLA-1458: 996b28e37a6ae63d79decd8a773a555913d0fa4e: expected committer email 'j.c@xxxx.com' but found 'j.c@yyyy.com'
remote:
remote:
To https://www.company.net/stash/scm/abc/123.git
 ! [remote rejected] features/PLA-1458 -> features/PLA-1458 (pre-receive hook declined)
error: failed to push some refs to 'https://www.company.net/stash/scm/abc/123.git'

мой глобальный конфиг имеет правильный адрес электронной почты:

user.email=j.c@xxxx.com

когда я делаю git log и проверяю коммиты, которые упоминаются в ошибке:

70f23668f033dd59daa116a23c6e63dc0342890f

и

996b28e37a6ae63d79decd8a773a555913d0fa4e

Я вижу правильный адрес электронной почты:

commit 70f23668f033dd59daa116a23c6e63dc0342890f 
Author: J C <j.c@xxxx.com> 
Date:   Tue Jun 18 10:08:50 2019 +0200

commit 996b28e37a6ae63d79decd8a773a555913d0fa4e 
Author: J C <j.c@xxxx.com> 
Date:   Fri Jun 14 16:18:44 2019 +0200

При проверке на стороне сервера адрес электронной почты

j.c@xxxx.com

похоже, что в какой-то момент была сделана фиксация с неправильным адресом электронной почты j.c@yyyy.com, и сейчас ее нужно изменить, но я не знаю, где она и как это сделать. Есть идеи? спасибо.

1 Ответ

0 голосов
/ 11 июля 2019

Как отметил Альдерат, проблема была в электронном письме коммитера, а не автора.

я использовал этот код:

git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"
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

для исправления электронной почты во всех коммитах во всех ветках, как показано в этом ответе: Как изменить имя автора и коммиттера и адрес электронной почты для нескольких коммитов в Git?

...