写在前面
我这个情形很少见,一般碰不到,当属疑难杂症,只能作为各位寻医问药的一个参考吧,最终解决的方案也不算优美
发病情况
两个大病:
- 没有推送代码的权限
- 报错中出现别人的邮箱
从公司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避免错误产生
本文讲述了作者在使用公司Mac电脑时遇到的Git授权问题。由于未设置个人Git账号信息,导致提交代码时使用了前任同事的账号。在尝试推送时遇到了权限错误,经过一系列尝试,包括修改gitconfig、生成SSH密钥、删除钥匙串记录等,最终发现是推送方式不匹配导致的问题。解决方案是确保使用SSH方式从拉取到推送项目,避免混淆HTTP和SSH。总结了两个关键错误:未及时设置个人Git账号和混淆了推送方式。
2178

被折叠的 条评论
为什么被折叠?



