我和一个朋友共用我的电脑。我已经在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日删除了对密码验证的支持。


当前回答

git add .
git commit -m "initial commit"
git config --local credential.helper ""
git push https://github.com/youraccount/repo.git --all

执行此push命令后,将打开用户名密码提示符。

其他回答

发生提交的用户id存储在配置文件中。

转到存储库的顶部 vi . /配置

更改“[remote "origin"]后列出的url行,使其具有适当的用户id

如果你使用SSH URL (git@github.com:username/projectname.git)而不是HTTPS URL,你可以使用$GIT_SSH_COMMAND环境变量临时指定一个不同的SSH密钥:

$ GIT_SSH_COMMAND="ssh -i different_private_key" git push

据我所知,对于SSH url, GitHub并不关心用户名,只关心密钥:如果用户帐户有权访问存储库,并且该帐户有SSH密钥(参见帐户设置中的SSH密钥页面),那么如果您使用该SSH密钥推送到该存储库,则该推送将被视为来自该用户。

你可以使用git remote add origin-username https://username@github.expedia.biz/repository_name.git为另一个用户名添加一个新的远程URL

在这之后,如果你使用git push -u origin-username master进行推送,这会提示你输入密码。

转到凭证管理器 转到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配置的全局名称和电子邮件,您可以满足于一些通用输入,或者尝试在这里进行局部作用域配置。