在推送存储库时如何在不同用户(github帐户)之间切换?

时间:2016-03-04 13:07:27

标签: git github

这是我遇到的问题。

首先,我正在开展几个不同的项目。 我有两个不同的github帐户,在设置其中一个并成功推送回购后,我需要提交/推送其他回购到第二个帐户,这让我遇到了确切的问题。

如何使用https方式而不是ssh在这两个帐户之间切换?

P.S:我在Mac上。

我试图更改git config全局/本地用户名和电子邮件,但它没有成功。我一直得到同样的错误:

  

“remote:对用户拒绝命名/ repo.git的权限。   致命:无法访问'repos address':请求的URL返回错误:403“。

2 个答案:

答案 0 :(得分:8)

您需要使用不同的ssh密钥。

阅读完整文档并按照步骤操作。

针对不同github帐户的多个SSH密钥设置:

https://gist.github.com/jexchan/2351996

<强> create different public key

根据文章Mac Set-Up Git创建不同的ssh密钥

$ ssh-keygen -t rsa -C "your_email@youremail.com"
例如,

创建了2个键:

~/.ssh/id_rsa_activehacker
~/.ssh/id_rsa_jexchan

<强> Add these two keys to the ssh-agent:

$ ssh-add ~/.ssh/id_rsa_activehacker
$ ssh-add ~/.ssh/id_rsa_jexchan
you can delete all cached keys before

$ ssh-add -D

<强> check your keys

$ ssh-add -l

<强> Modify the ssh config

$ cd ~/.ssh/
$ touch config
$ subl -a config

Add the keys to the config file: ***

#activehacker account
Host github.com-activehacker
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_activehacker

#jexchan account
Host github.com-jexchan
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_jexchan

<强> Clone you repo and modify your Git config

# clone your repo 
git clone git@github.com:activehacker/gfs.git gfs_jexchan

cd gfs_jexchan and modify git config

$ git config user.name "jexchan"
$ git config user.email "jexchan@gmail.com" 

$ git config user.name "activehacker"
$ git config user.email "jexlab@gmail.com" 

# or you can have global 
git config $ git config --global user.name "jexchan" 
git config --global user.email "jexchan@gmail.com"

<强> push your code

# add the code and commit it
git add .
git commit -m "your comments"

# push the code to the remote server
git push

答案 1 :(得分:1)

我们还需要将ssh密钥添加到相应的帐户,否则身份验证将失败。

这个完美无瑕-https://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574