git推送错误:对<;的权限;回购>;拒绝<;用户>;
一个月前,我在mac上配置了两个github帐户:一个用于工作,另一个用于个人使用。 我已经用了一个月了,没有问题。在工作日提交/推送/等回购。晚上,在几次个人回购中提交/推送/等。 突然,今天我无法对我的一个个人帐户进行一些更改,错误是:git推送错误:对<;的权限;回购>;拒绝<;用户>;,git,github,ssh,Git,Github,Ssh,一个月前,我在mac上配置了两个github帐户:一个用于工作,另一个用于个人使用。 我已经用了一个月了,没有问题。在工作日提交/推送/等回购。晚上,在几次个人回购中提交/推送/等。 突然,今天我无法对我的一个个人帐户进行一些更改,错误是: git push --set-upstream origin <branch> ERROR: Permission to <repo>.git denied to <work-account>. fatal: Could
git push --set-upstream origin <branch>
ERROR: Permission to <repo>.git denied to <work-account>.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
电子邮件是我的个人电子邮件,所以这是正确的
为什么git使用我的工作帐户?即使git config
命令显示我的个人帐户?
而且,这几天前还在起作用
注2:
- 我在~/.ssh目录中定义了两个帐户:id\u rsa、id\u rsa.pub、id\u rsa、id\u rsa.pub
- 还定义了~/.ssh/config:
我不知道为什么它不再工作了…检查您的配置文件中是否有任何pushURL配置,以检查它是否尝试使用您不期望的URL进行推送 注意:您可以测试的SSH URL是
githubpersonal
,而不是git@githubpersonal
,因为git已经在~/.ssh/config
ssh -Tv githubpersonal
检查配置文件中的任何pushURL配置,以检查它是否尝试使用您不期望的URL进行推送 注意:您可以测试的SSH URL是
githubpersonal
,而不是git@githubpersonal
,因为git已经在~/.ssh/config
ssh -Tv githubpersonal
git config
在这里什么也做不了;user.name
和user.email
设置仅存储在您所做的新提交中,否则与您的身份无关。由于您正在使用ssh,请尝试ssh-vTgit@github.com
和ssh-vT-git@
并查看您发送的是哪个或多个标识。好的,我认为有点不对,这是输出:(1)ssh-vTgit@github.com=>“您好!您已成功通过身份验证,…”,这是正确的。但是(2)ssh-vT git@或ssh-vT,输出与前面的“您好!您已经成功地进行了身份验证,…”相同,为什么两者都是工作帐户?是这样吗?(我想不是)它只是重新启动,很奇怪。尝试推送,没有错误!。运行ssh-vT,问候语使用的是个人帐户。UseKeychain yes
表明您在Mac上。当您登录Mac时,您建立了一些密钥(运行ssh add-l
查看它们),您的ssh将向其他系统提供这些密钥;显然,这些是GitHub用来识别您的。考虑在这里设置<代码>标识> <代码>设置,这样您就可以指示您的SSH保留一些密钥,只提供您在<代码>中列出的那些。SSH/CONFIG。user.name
和user.email
设置仅存储在您所做的新提交中,否则与您的身份无关。由于您正在使用ssh,请尝试ssh-vTgit@github.com
和ssh-vT-git@
并查看您发送的是哪个或多个标识。好的,我认为有点不对,这是输出:(1)ssh-vTgit@github.com=>“您好!您已成功通过身份验证,…”,这是正确的。但是(2)ssh-vT git@或ssh-vT,输出与前面的“您好!您已经成功地进行了身份验证,…”相同,为什么两者都是工作帐户?是这样吗?(我想不是)它只是重新启动,很奇怪。尝试推送,没有错误!。运行ssh-vT,问候语使用的是个人帐户。UseKeychain yes
表明您在Mac上。当您登录Mac时,您建立了一些密钥(运行ssh add-l
查看它们),您的ssh将向其他系统提供这些密钥;显然,这些是GitHub用来识别您的。考虑在这里设置<代码>标识> <代码>设置,这样您就可以指示您的SSH保留一些密钥,只提供您在<代码>中列出的那些。SSH/CONFIG。我不知道是否知道如何检查…我所做的就是使用commandgit remote-v
,看起来还不错。此外,我已经检查了项目中的配置文件,它似乎也很好(您可以在notes 2中看到输出)。这就是我要检查的还是其他的?@M.G.just(在repo文件夹中)git config-l
ah好的,我只要执行它,我就可以看到两个条目“user.email”:第一个是我的工作邮件,然后在另一个条目下面的几行是我的个人邮件。此外,条目“remote.origin.url”似乎是对的“git@:…”。我是否应该在工作电子邮件中删除“user.email”条目?我该怎么做?@M.G.不,一个被另一个覆盖:你可以通过git config-l--show origin
看到哪个是哪个(下周,通过即将发布的git 2.26:git config-l--show origin--show scope
:)我不知道如何检查。。。我所做的就是使用commandgit remote-v
,看起来还不错。此外,我已经检查了项目中的配置文件,它似乎也很好(您可以在notes 2中看到输出)。这就是我要检查的还是其他的?@M.G.just(在repo文件夹中)git config-l
ah好的,我只要执行它,我就可以看到两个条目“user.email”:第一个是我的工作邮件,然后在另一个条目下面的几行是我的个人邮件。此外,条目“remote.origin.url”似乎是对的“git@:…”。我是否应该在工作电子邮件中删除“user.email”条目?我该怎么做?@M.G.不,一个被另一个覆盖:你可以通过git config-l--show origin
看到哪个是哪个(下周,通过即将发布的git 2.26:git config-l--show origin--show scope
:)
[remote "origin"]
url = git@<githubpersonal>:<personal_account>/<repo>.git
fetch = +refs/heads/*:refs/remotes/origin/*
origin git@<githubpersonal>:<personal_account>/<repo>.git (fetch)
origin git@<githubpersonal>:<personal_account>/<repo>.git (push)
ssh -Tv githubpersonal