git push到远程仓库提示“remote: GitLab: Author ‘xxxxxx@xxxx.xxx’ is not a member of team”
背景
假设自己本地git邮箱账号是“xxy@163.com”,在参加团队协作的gitlab项目时,clone仓库以及后续commit过程中都没有将邮箱修改为团队内部邮箱,在git push时报错“remote: GitLab: Author ‘xxy@163.com’ is not a member of team”
踩坑记录
直接搜索“。。。is not a member of team”这条报错信息,出来的帖子基本都是git config修改邮箱就可以了,但在实际操作中git push时仍会显示同样的报错
原因以及解决方法
原因
由于在commit之前没有修改邮箱,故commit记录的提交者仍是原来的邮箱账号,commit后修改邮箱不能改变历史提交记录,所以在push时仍显示原来的邮箱
解决方法
1、修改本地仓库邮箱信息,修改邮箱即可,name不影响
修改当前仓库:git config user.email "xxy@***.***"
修改全局:git config --global user.email "xxy@***.***"
2、退回到clone仓库的那条git记录版本,即clone后的所有修改退回到工作区,需要一次性使用新修改邮箱重新add和commit,reset默认参数是–mixed可省略,不可使用–hard
查看git log记录:git log
如图红色箭头所示最初clone的git记录,使用红色框内哈希值退回
3、回退git历史记录
git reset 6bc5e79d2
这时已经将所有修改退回了工作区,但已删除文件不会恢复,即标识为D,使用git status查看状态
4、这时再重新add和commit后可正常push了