试图从我的电脑上完成我实际的“工作”回购,以及我在GitHub上的回购。
工作账户是先建立的,一切都完美无缺。
然而,我的账户似乎无法推送到我的回购,这是在另一个账户/电子邮件下设置的。
我尝试将我的工作密钥复制到我的帐户,但这抛出了一个错误,因为密钥当然只能附加到一个帐户。
我如何用各自的GitHub凭证推/拉两个帐户?
试图从我的电脑上完成我实际的“工作”回购,以及我在GitHub上的回购。
工作账户是先建立的,一切都完美无缺。
然而,我的账户似乎无法推送到我的回购,这是在另一个账户/电子邮件下设置的。
我尝试将我的工作密钥复制到我的帐户,但这抛出了一个错误,因为密钥当然只能附加到一个帐户。
我如何用各自的GitHub凭证推/拉两个帐户?
当前回答
最简单和直接的方法(IMHO) -没有配置文件,没有太多的麻烦
只需创建另一个ssh密钥。
假设你有一个新的GitHub工作帐户,只需为它创建一个新密钥:
ssh-keygen -t rsa -C "email@work_mail.com" -f "id_rsa_work_user1"`
您只需要运行一次上面的程序。
现在你应该有了旧的和新的,要查看它们,运行:
ls -al ~/.ssh
从现在开始,每次你想在两者之间切换时,只需运行:
ssh-add -D
ssh-add ~/.ssh/id_rsa_work_user1 #make to use this without the suffix .pub
为了切换到旧的,再次运行:
ssh-add -D
ssh-add ~/.ssh/<previous id_rsa>
其他回答
只要在你最喜欢的编辑器中添加这一行,你就完成了一生
git remote set-url origin https://user-token-of-particular-user@github.com/profile-name/repo-name
不像其他答案,在那里你需要遵循几个步骤来使用两个不同的github帐户从同一台机器,对我来说,它在两个步骤。
你只需要:
1)在~/下为您的每个帐户生成SSH公私钥对。使用不同的名称和SSH位置
2)在“设置”中,将生成的公钥添加到对应的帐号“>> SSH和GPG密钥>> SSH新密钥”。
使用实例生成SSH公私钥对。
cd ~/.ssh
ssh-keygen -t rsa -C "email@work.com" -f "id_rsa_WORK"
ssh-keygen -t rsa -C "email@gmail.com" -f "id_rsa_PERSONAL"
作为上述命令的结果,id_rsa_WORK和id_rsa_WORK。pub文件将为您的工作帐户(ex - git.work.com)和id_rsa_PERSONAL和id_rsa_PERSONAL创建。Pub将为您的个人帐户(ex - github.com)创建。
创建之后,从每个公共(*.pub)文件复制内容,并对每个帐户执行步骤2。
PS:没有必要为~/下的每个git帐户创建一个主机条目。Ssh /配置文件,如在其他答案中提到的,如果您的两个帐户的主机名不同。
另一种更简单的方法是使用多个桌面应用程序,就像我在做什么,使用帐户A在Github桌面,而使用帐户B在Github Kraken
2023年更新:
你可以使用Github桌面。在这里,你只需要在本地克隆存储库,并使用Github Desktop管理代码。
使用码头工人!
这可能不适合每个人,但这是我最后为自己做的。
我所有的开发现在都在docker容器中完成。我是一个vim用户,但我知道VSCode有插件来使用docker容器。
因此,由于我有不同的docker容器为不同的项目/语言,我可以在每个内部使用不同的git配置。问题解决了。