Git推送失败,并出现错误:“ GitLab:作者不是团队成员”

时间:2019-05-16 23:23:41

标签: git gitlab

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与Author一起使用我的本地主机名。任何线索如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

在将项目迁移到新的Gitlab网站时遇到了这个问题。对我有用的解决方案是在我的新项目中禁用选项“ 检查作者是否是GitLab用户”。

来自Gitlab docs

GitLab已经提供了受保护的分支,但是在某些情况下,您需要一些特定的规则,例如防止删除Git标签或对提交消息强制采用特殊格式。

推送规则本质上是预先接收的Git hooks

推送规则“检查作者是否是GitLab用户”:

限制作者(电子邮件)对现有GitLab用户的提交。

如果这是您的初始提交(如我的情况),您可能只想取消激活GitLab用户检查一次,然后为以后的提交重新激活它。

该选项可从Gitlab Starter 7.10获得,并且可以在Web界面的 settings/repository

中进行编辑

enter image description here

另请参阅:How to bypass: remote: GitLab: Author is not a member of team?

答案 1 :(得分:1)

使用您的用户名和主机名的不是git push,而是git commit

默认情况下,如果您未设置user.nameuser.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.nameuser.email设置。因此,您要推送的那些提交已经将“ SamLogan@logath-T460.mycompany.com”保存为提交作者。

然后您需要做的是更新那些提交的作者。首先,请确保正确set the user.name and user.email config(回购中的--global--local)。然后在这些提交上使用--reset-author

要修改最近提交的作者:

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

要修改过去多次提交的作者:
(参考:How to amend several commits in Git to change author

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

其中N是您需要更新的先前提交的数量。 rebase -i将显示一个命令行编辑器以向您显示更改,而--reset-author将使用您当前的user.*设置。保存并退出以应用更改。

之后,git push现在应该可以工作了。

答案 2 :(得分:0)

请检查您的gitlab推送规则。 去 - 项目>设置>存储库>推送规则

确保未选中以下设置:

检查作者是否为GitLab用户限制作者(电子邮件)向现有GitLab用户提交提交

这是这里的解释: https://gitlab.com/gitlab-com/support-forum/issues/1459