我使用以下命令更改用户详细信息:
git config --global user.name myusername
git config --global user.email myemail
我从与myusername链接的帐户中提取了一个公共远程存储库,当我尝试推送更改时,它出现了以下错误:
remote: Permission to myusername/project.git denied to oldusername.
虽然我更改了它,但它仍然只是试图通过旧的用户名。为什么?我在这里错过了什么?
检查git config user.name
后,我发现它只显示了myusername而不是oldusername!
答案 0 :(得分:3)
请参阅Jordan Lewis's answer了解推送本身失败的原因。
但请注意,您配置的user.name
和user.email
用于您提交的提交。
因此,如果您已经使用旧 user.name
和/或user.email
进行了三次提交,则更改它们并进行一次新提交,你现在有四个提交,三个有旧名称,一个有新名称。
当你运行git push
时,你告诉你的Git向他们(其他)Git提供他们没有的所有提交。这将是所有这四个提交。 (如果您作出的最新提交作为其父级,其中有三个"错误的名称之一"您提交的提交,那么您的Git 必须发送错误的名称和权利 - name提交您最新的权利名称提交以获得添加。)
See also this answer to a related question,帮助您复制使用"错误"使用更正的名称/电子邮件命名/发送电子邮件给新的。
答案 1 :(得分:3)
问题可能在于您使用附加到oldusername
帐户的密钥进行推送,但该密钥未添加到您的myusername
帐户中。
有一个help document正好描述了这个问题。