我和一个朋友共用我的电脑。我已经在Windows 7上使用git bash shell推送到GitHub。现在我们在那台电脑上做一个不同的项目,我需要她推到她的账户上。但它一直试图使用我的用户名,并说我没有访问她的存储库:

$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly

重要:2021年8月13日删除了对密码验证的支持。


当前回答

如果这是你的问题

remote: Permission to username1/repo.git denied to username2.
fatal: unable to access 'https://github.com/username1/repo.git/':
The requested URL returned error: 403

除了使用git配置从终端更改用户名和电子邮件:

$ git config --global user.name "Bob"
$ git config --global user.email "bob@example.com"

您需要从钥匙串中删除授权信息。我花了好几个小时才想出这个解决办法。我发现我的钥匙链里也有证书。

打开钥匙链访问,点击所有项目,搜索git。删除所有keychain

其他回答

转到凭证管理器 转到Windows凭证 删除通用凭证下的条目 再次尝试连接。

很容易修复,您可以在~/.ssh/config处编辑该文件

来自:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/private_key

To:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/other_account_private_key

切换帐户时,两者交替使用。此外,为了避免每次切换时都更改git配置的全局名称和电子邮件,您可以满足于一些通用输入,或者尝试在这里进行局部作用域配置。

这是简单的克隆,请采取的git URL与您的用户名。在提交时,它将询问您的新用户密码。

Eg:

Git克隆https://username@github.com/username/reponame.git

Git克隆https://username@bitbucket.org/username/reponame.git

这应该是有效的: Git推送源local-name:remote-name

更好的是,对于GitLab,我使用了第二个“origin”,即“origin2”:

Git远程添加origin2… 然后

Git推送origin2 master

传统的(短的)git推送应该隐式地工作,就像第一个“origin”一样。

我不知道如何在一台机器上有第二个github身份(这些答案都不适合我),但我确实弄清楚了如何能够以我自己的身份推送多个不同的github账户。

推送相同的用户名,但不同的github帐户

为你的第二个github账户设置第二个SSH密钥(就像这样) 帐户之间的变化如下:

用我的第二个github账号推送

ssh-add -D
ssh-add ~/.ssh/ssh_key_for_my_2nd_account
git push

用我的主账号推送

ssh-add -D
ssh-add ~/.ssh/id_rsa   
git push