Git push завершился ошибкой: «GitLab: автор не является членом команды» - PullRequest
1 голос
/ 17 мая 2019

git push завершился со следующим сообщением:

remote: GitLab: Author '`SamLogan@logath-T460.mycompany.com`' is not a member of team

Мои #git config user.name и #git config user.email установлены как:

#git config user.name
Sam Logan 

#git config user.email
SamLogan@mycompany.com

Мое имя хоста logath-T460.

Я не уверен, почему git push использует мое локальное имя с Автором. Любая подсказка, как решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 18 мая 2019

Это не git push, которое использует ваше имя пользователя + имя хоста, это git commit.

По умолчанию, если вы не установили user.name и user.email ПЕРЕД выполнением коммита, git получит его от имени вашего компьютера и имени хоста. Это также показало бы вам следующее предупреждение:

Committer: user1234 <user1234@mac.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1.txt

Когда вы делаете git push, он просто использует то, что было установлено в качестве автора коммита, и отправляет его в удаленное хранилище.

То, что я думаю, произошло: вы уже совершили ДО вы установили правильные настройки user.name и user.email. Таким образом, те коммиты, которые вы пытаетесь выдвинуть, уже сохранили «SamLogan@logath-T460.mycompany.com» в качестве автора коммита.

Что вам нужно сделать, это обновить автора этих коммитов. Во-первых, убедитесь, что правильно настроили user.name и user.email config (--global или --local для репо). Затем используйте --reset-author для этих коммитов.

Чтобы изменить автора только самого последнего коммита:

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

Чтобы изменить автора нескольких прошлых коммитов:
(ссылка: Как изменить несколько коммитов в Git, чтобы сменить автора )

git rebase -i HEAD~N -x "git commit --amend --reset-author --no-edit"

где N - количество предыдущих коммитов, которые вам нужно обновить. rebase -i покажет редактор командной строки, чтобы показать вам изменения, а --reset-author будет использовать ваши текущие настройки user.*. Просто сохраните и выйдите, чтобы применить изменения.

После этого git push теперь должно работать.

0 голосов
/ 17 мая 2019

Пожалуйста, проверьте ваши правила push gitlab.перейдите - проект> настройки> репозиторий> правила push

, убедитесь, что следующие настройки не отмечены:

Check whether author is a GitLab user Restrict commits by author (email) to existing GitLab users

Вот как это объясняется: https://gitlab.com/gitlab-com/support-forum/issues/1459

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...