为什么我无法更改全局提交作者?

时间:2017-04-17 19:56:17

标签: git github

我使用以下命令更改用户详细信息:

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!

2 个答案:

答案 0 :(得分:3)

请参阅Jordan Lewis's answer了解推送本身失败的原因。

但请注意,您配置的user.nameuser.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正好描述了这个问题。