Git不断提到我的旧用户名,即使我可以';我找不到它的踪迹
Git不断提到我的旧用户名,即使我可以';我找不到它的踪迹,git,github,Git,Github,remote:MYUSERNAME/project.git的权限被拒绝给OLD-USER-NAME 我有2个GitHub用户。一个供个人使用,一个供工作使用。对于本例,MYUSERNAME将是我的个人用户名,OLD-USER-NAME将是工作用户名。 我不久前已经停止使用OLD-USER-NAME,但在尝试推送到github https时出现上述错误。我通过直接推到…解决了这个问题 我试图弄清楚为什么我的旧用户名会被提及,以及git是如何“知道它的” 我尝试过的事情: ssh add-l->代理
remote:MYUSERNAME/project.git的权限被拒绝给OLD-USER-NAME
我有2个GitHub用户。一个供个人使用,一个供工作使用。对于本例,MYUSERNAME将是我的个人用户名,OLD-USER-NAME将是工作用户名。
我不久前已经停止使用OLD-USER-NAME,但在尝试推送到github https时出现上述错误。我通过直接推到…解决了这个问题
我试图弄清楚为什么我的旧用户名会被提及,以及git是如何“知道它的”
我尝试过的事情:
ssh add-l
->代理没有标识。
git config--global--edit
或git config--edit
显示我的用户名git-remote--verbose
它给了我:originhttps://github.com/MYUSERNAME/project.git (取回)来源https://github.com/MYUSERNAME/project.git (推送)
您应该检查您的遥控器:
git remote --verbose
如果它说
origin git@github.com:OLD-USER-NAME/project.git (fetch)
origin git@github.com:OLD-USER-NAME/project.git (push)
然后你就可以把它修好了
git remote set-url origin git@github.com:MYUSERNAME/project.git
除了问题中提到的所有内容和评论中的@gturri建议之外,下一步是检查git或操作系统是否正在缓存您的凭据
检查OSX/Linux/cygwin上的密钥环,并检查是否设置了git config[--global]credential.helper。我遇到了与OP相同的问题,我不确定他是否报告了,但OSX密钥链条目是我的问题。删除它后,git push会提示我输入用户名和密码。因此,我运行了
env git\u TRACE\u CURL=true git clonehttps://github.com/user/private-repo-path
并发现它正在发送一个旧用户名
然后我在这里尝试了所有不同的选择。最后,在研究之后,我发现问题在于旧用户和密码被保存在Mac上的.netrc文件中。上面写着
originhttps://github.com/MYUSERNAME/project.git (取回)来源https://github.com/MYUSERNAME/project.git (按)
然后这不是正确的猜测。。。另一种尝试:尝试ssh url而不是https url,即git@github.com:user/project.git
而不是https://github.com/user/project.git
。我不完全相信,但我经常对这个URL有较少的问题,我会在下一次尝试它。我只是很好奇git从哪里获取OLD-USER-NAME
字符串。我在系统中的任何地方都找不到它。如果将cd
放入存储库的.git
文件夹并运行grep-r OLD-USER-NAME.
,会发生什么情况?如果这没有显示什么,你几乎可以排除本地系统中的任何内容。@DavidZ好主意。我没有结果。对于MYUSERNAME
我得到了很多结果。如果本地系统不可用,还有什么?实际上,如果您有时间等待,也可以在主目录中运行相同的grep
命令。这样,它将捕获诸如~/.gitconfig
,~/.ssh/config
等内容。(所以我错误地说,从存储库git目录运行它可以消除本地系统上的任何内容。)当然,我看到您已经检查了这些内容,但以防万一…@DavidZ就是这么做的。没有结果。奇怪的在所有的驱动器上,而不仅仅是在主目录上,这样做有什么意义吗?我怀疑。我的意思是,如果你想让自己放心,而且你有很多时间,而且你不担心驱动力过大(除非你有一个旧的驱动力,否则可能没什么大不了的),那么这不会有什么坏处。但是如果你的主目录之外有什么东西要对此负责,我会非常惊讶。你看到的行为已经很奇怪了。就我个人而言,我会运行strace-e trace=file git…
,查看命令访问哪些文件,然后关注这些文件,尽管我这样做的前提是不太可能给出解决方案。非常好的建议。git命令返回了错误:key不包含节:[--global]
,但我确实在github.com下的keychain中找到了我的旧用户名。git命令行可以访问它吗?我不知道。如果这是问题所在,我会向你汇报。括号中只表示参数是可选的。尝试git-config--global-credential.helper
。在任何情况下,如果你从密钥链中删除你的旧用户,git将无法找到它。什么都不会发生。再次查看我的钥匙链后,github帐户列在kind:internetpassword
下,所以我认为这不是问题。第三次查看魅力。在我再次查看我的钥匙链后,我注意到github项提供了一个名为git credential osxkeychain的访问权限,所以我猜钥匙链条目是问题所在。。等我推一点东西,我就知道了。这就是问题所在。忘记接受上面的正确答案。