我和一个朋友共用我的电脑。我已经在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 push后,git要求输入用户密码,但你想以new_user的身份推送,你可能需要使用git配置remote.origin.url:

$ git push
user@my.host.com:either/branch/or/path's password:

此时使用^C退出git推送,并使用following作为new_user进行推送。

$ git config remote.origin.url
user@my.host.com:either/branch/or/path

$ git config remote.origin.url new_user@my.host.com:either/branch/or/path

$ git push
new_user@my.host.com:either/branch/or/path's password:

其他回答

如果你有https://desktop.github.com/ 然后你可以去首选项(或选项)->帐户 然后签出签入。

我一直在使用一台机器,用不同的用户名将代码推送到两个不同的GitHub帐户。假设您已经设置了一个帐户,并想添加一个新帐户:

生成新的SSH密钥SSH -keygen -t rsa -C "myaddress@example.com" 保存它,但记住不要覆盖现有的id_rsa。给它一个不同的名字,例如id_rsa_another 复制密钥的内容到你的GitHub帐户:

设置-> SSH和GPG密钥-> SSH新密钥->标签粘贴 the key ->添加SSH密钥

将密钥添加到ssh代理:ssh- Add ~/.ssh/id_rsa_another 安装一个GitHub主机:用touch ~/创建一个配置文件。Ssh /config并编辑文件,为您的帐户提供配置:

#first account
Host github.com-first
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

#another account
Host github.com-another
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_another

现在您应该能够根据您添加到ssh代理的键从不同的帐户推送,即使用您的第一个帐户 ssh-add ~ / . ssh / id_rsa。

你可能还想更改你的用户邮箱:

Git配置——全局用户。电子邮件“myaddress@example.com”

或者在向其中一个帐户发送代码时,在权限错误的情况下清除SSH密钥:

ssh-add - d

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

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

Git远程添加origin2… 然后

Git推送origin2 master

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

git config user.name只改变我提交的名称。我还是推不动。这就是我解决它的方法,我认为对我来说是一个简单的方法。

在要使用的计算机上使用的用户名下生成一个SSH密钥 https://help.github.com/articles/connecting-to-github-with-ssh/ 将此键添加到要推送的github用户帐户 https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/ 选择SSH克隆

你可以以这个用户推入到那个回购。

修改项目根目录下的。git目录中的config文件:[PROJECT_PATH]/.git/config

我在这个文件的末尾添加了以下部分。之后我就可以用我的新名字按遥控器了。

[user]
    name = Your Name
    email = MyEmailAddress@company.com