GitLab: Вы не можете отправлять коммиты для . Вы можете отправлять коммиты только тех, которые были отправлены с одним из ваших собственных проверенных адресов электронной почты

GitLab: Вы не можете отправлять коммиты для . Вы можете отправлять коммиты только тех, которые были отправлены с одним из ваших собственных проверенных адресов электронной почты

У меня возникла странная проблема, когда я клонировал репозиторий с моими учетными данными ( [email protected]). Но я не могу отправить изменения, потому что я всегда получаю это сообщение:

GitLab: You cannot push commits for '[email protected]' . You can only push commits that were committed with one of your own verified emails.

Проблема в том, что когда я проверяю глобальных пользователей и пользователей репозитория, я обнаруживаю следующее [email protected]:

Глобально (ниже подтверждается мой правильный адрес):

git config  --global user.email
git config  --global user.name

Репозиторий (ниже подтверждается мой правильный адрес):

git config  user.email
git config   user.name

Что мне делать и в чем причина этой таинственной загадки?

решение1

Мне удалось исправить ту же проблему с помощью этой команды git:

git commit --amend --reset-author --no-edit

Сначала я попытался выполнить коммит, указав неправильный адрес электронной почты, но даже после установки git config --globalправильных user.name и user.email я продолжал получать ту же ошибку «Вы не можете отправлять коммиты для...», указанную выше.

Решением стало сброс автора в git, после чего push был принят в Gitlab.

Для справки:https://github.com/git-tips/tips#revert-undo-a-commit-by-creating-a-new-commit

решение2

В моем случае в проекте на GitLab было ограничение на коммиттеров. «Пользователи могут отправлять в этот репозиторий только те коммиты, которые были отправлены с одного из их собственных проверенных адресов электронной почты». Поскольку я также настроил SSH на своей машине, мой адрес электронной почты пользователя был обновлен в глобальном файле git с адресом моей машины, следовательно, удаленный доступ не позволял выполнять PUSH.

Вы можете найти это здесь: gitlab-> settings -> Repository -> Push Rules; просто отключите это ограничение на коммиты, и все заработает.

решение3

git commit --amend --reset-author --no-editизменяет только автора в последнем коммите. Если у вас несколько коммитов, вы все равно не сможете отправить изменения.

Проверьте его с помощью git log, сбросьте все коммиты с неправильным автором и повторите коммит.

решение4

Вы можете отключить ограничения на отправку, чтобы вам не приходилось проходить все коммиты и менять адрес электронной почты.

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

Связанный контент