Git log 中发现 “xxx@xxx.com“ 邮箱不符合要求,请务必使用公司邮箱。解决方案

配置了新的mac笔记本。完成了一系列开发环境配置,安装了git,IDE,配置了git ssh秘钥,clone下项目代码,顺利看到了所负责项目的代码。并且完成新的branch的创建和分支提交到远程仓库,和几次代码的commit到本地仓库等工作,一切很顺利。

 

问题描述:

当开发完成一个小的模块,进行了codeReview之后,准备将代码push到远程仓库。使用IDE中Git Repository Push进行代码push,IDE报错:Push rejected(如下图):

因为没有具体reject信息,使用Terminal git push命令又进行远程的push,返回的报错信息如下:

Git log 中发现 "xxx@alibaba-inc.com" 邮箱不符合要求,请务必使用公司邮箱。

 

问题原因:

经过检查发现问题的原因是在执行:

git config --global user.name ‘username’ 
git config --global user.email ‘email’ 

时使用了中文引号“”,导致不能识别正确的email

命令时报错信息写的很清楚,使用命令重新设置 username和email

然后执行 git-m

并给出了git-m工具的几种安装方式,于是按照提示重新操作了一下,安装了git-m工具,并重新执行了正确的语句。

但是正确执行之后,进行git push操作任然是"Push rejected",无法进行提交。

后续又排查了其他方面的问题

  1. 项目的git权限问题
  2. 甚至是我邮箱命名的问题

一系列排查之后最终还是定位到了 git设置的email的问题上

 

问题解决:

因为最初设置了错误的包含中文引号email,所以在之后的所有提交的git log中的email都是错误的email,按照报错提示,设置正确的username和email之后,执行git-m,说是可以自动修正log信息,但实际上之前已经commit的git log中的email信息并没有被修改正确。

之所以执行了正确的username和email之后仍然不能够git push,就是因为虽然当前global email是正确的但是的因为在git log中的email是错误的,携带中文引号的,所以gitlab在校验所有的commit信息时进行了reject!

正确的解决方式:

方案一:执行以下命令

git log 
git reset 版本号 
git config --global user.name ‘username‘ 
git config --global user.email ‘email ’
其中要注意的是git reset 版本号 要reset的“版本号”一定要确保此版本号之前的log中的email是正确的。

方案二:

  1. 设置正确的username和email
  2. 重新clone项目,进行commit提交
  3. git push

 

问题反思:

正如文章开头所说的:认真是成功的秘诀,粗心是失败的伴侣。 产生这个问题的根本原因就是因为自己粗心大意,因为觉得自己对git很熟悉,天天使用,很多地方想当然,没有做到认真仔细,产生了这个问题,浪费了一下午的解决和排查的时间。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值