写在前面
我这个情形很少见,一般碰不到,当属疑难杂症,只能作为各位寻医问药的一个参考吧,最终解决的方案也不算优美
发病情况
两个大病:
- 没有推送代码的权限
- 报错中出现别人的邮箱
从公司Github上拉下的代码,自己在本地建立了分支,修改代码后准备推送本机分支到远程仓库上
分别经历 git add 和 git commit命令
然后git push开始报错
fatal: The current branch ymn/master has no upstream branch.
这大概是我没有建立远程分支的原因,所以按照提示
git push --set-upstream origin 分支名
继续报错,还挺多内容的,截取其中一部分
remote: GitLab: You cannot push commits for '别人的邮箱'. You can only push commits that were committed with one of your own verified emails.
到这里我才明白一点点,电脑是公司的mac,之前是其他前辈在用,我用的时候没有重新设置过git账号信息。
必须说明一点,git push最开始报错的不是上面这一条,而是提示我没有push的权限,最后发现原因是代码是通过http的方式拉下来的又想通过SSH的方法推上去就会报错,这个错误好解决。
回到大病2,我目前这个报错是我中间各种找错误各种治之后的结果,过程中做过的功夫有:
- 修改git config user.name
- 修改git config user.email
- 重新申请SSH密钥
- 删除mac电脑上钥匙串中的git相关的记录
注意看步骤2,我修改了git的账号信息,但是这是在我git commit之后的工作,因此局面就是commit用的是别人的账号,想要push的是我本人的账号,导致了上述错误,最终找了大佬帮我解决了这个问题。
总结我的两个错误操作:
- 没有在拿到电脑后设置自己的账号信息,导致git账户混乱
- 拉项目的时候也要用SSH,推上去也要用SSH避免错误产生