Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git不断提到我的旧用户名,即使我可以';我找不到它的踪迹_Git_Github - Fatal编程技术网

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
    ->
    代理没有标识。
  • 我找不到任何.ssh文件夹
  • 我的两个github帐户上都没有任何ssh密钥
  • git config--global--edit
    git config--edit
    显示我的用户名
  • git-remote--verbose
    它给了我:
    originhttps://github.com/MYUSERNAME/project.git (取回)来源https://github.com/MYUSERNAME/project.git (推送)
  • 旧用户名GitHub->Settings->Security History我可以看到我的ip旁边有一个绿点。也许这和它有关

  • 您应该检查您的遥控器:

    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的访问权限,所以我猜钥匙链条目是问题所在。。等我推一点东西,我就知道了。这就是问题所在。忘记接受上面的正确答案。