试图从我的电脑上完成我实际的“工作”回购,以及我在GitHub上的回购。
工作账户是先建立的,一切都完美无缺。
然而,我的账户似乎无法推送到我的回购,这是在另一个账户/电子邮件下设置的。
我尝试将我的工作密钥复制到我的帐户,但这抛出了一个错误,因为密钥当然只能附加到一个帐户。
我如何用各自的GitHub凭证推/拉两个帐户?
试图从我的电脑上完成我实际的“工作”回购,以及我在GitHub上的回购。
工作账户是先建立的,一切都完美无缺。
然而,我的账户似乎无法推送到我的回购,这是在另一个账户/电子邮件下设置的。
我尝试将我的工作密钥复制到我的帐户,但这抛出了一个错误,因为密钥当然只能附加到一个帐户。
我如何用各自的GitHub凭证推/拉两个帐户?
当前回答
我看到这里有很多可行的变通办法。作为权宜之计,@Greg的方法似乎相对简单。但是,从长远来看,最好为所有不同的帐户设置单独的ssh密钥。这个视频简单演示了一下。以下是视频博客中提到的步骤。
步骤1 -为新帐户创建一个新的SSH密钥,并将其保存在一个单独的文件中(例如~/. SSH /id_rsa_new_account_name),而不是在原来的文件中,例如~/. SSH /id_rsa
ssh-keygen -t rsa -C "your-email-address"
步骤2 -附加新密钥
接下来,登录到你的第二个GitHub账户 浏览到Account Overview,并附加新密钥~/.ssh/id_rsa_new_account_name。在SSH Public Keys部分中。 在终端中,通过键入SSH -add ~/. SSH /id_rsa_new_account_name告诉SSH添加新的标识。如果成功,您将看到Identity Added的响应。
步骤3 -创建配置文件
touch ~/.ssh/config
并将以下内容保存到文件中
#Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
#New Account
Host github-new-account-name
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_new_account_name
第四步——尝试一下 现在,每当您想要使用新帐户和相关的回购时,请为相应的回购键入此选项
git remote add origin git@github-new-account-name:your-domain.com/your-repo.git
其他回答
另一种更简单的方法是使用多个桌面应用程序,就像我在做什么,使用帐户A在Github桌面,而使用帐户B在Github Kraken
简单的方法,不需要处理SSH键盘
只需更改user.name & user。在回购的本地电子邮件。给那些你想要推到回购的人。
示例:我在gitlab有一个工作帐户,有一个项目。克隆这个项目/回购后,在终端中,我输入:
git config user.name "my-work-username"
git config user.email "my-work-email-id"
现在,假设我在Gitlab中有另一个个人项目/回购,我想将它与我的个人帐户关联起来。就像上面一样,克隆后,我输入:
git config user.name "my-personal-username"
git config user.email "my-personal-email-id"
希望这能有所帮助。如果对你有用就给它点赞!:)
在一台Windows机器上管理多个GitHub帐户(HTTPS)
假设你之前在你的机器上使用git并配置了git全局配置文件。要检查它,打开终端,然后:
git config --global -e
它打开你的编辑器,你可能会看到这样的东西:
[user]
email = yourEmail@gmail.com
name = Your_Name
...
这很好,因为你可以把你的代码推送到GitHub账户,而不用每次都输入凭证。 但如果它需要从另一个账户推送回购呢?在这种情况下,git将拒绝403 err,您必须更改全局git凭据。要在凭据管理器中存储一个回购名称,可以使用这个lat集:
git config --global credential.github.com.useHttpPath true
要检查它打开配置一次 Git配置——global -e 您将看到新的配置行
[credential]
useHttpPath = true
...
就是它。现在,当你第一次推到任何帐户,你会看到一个弹出 Screenshot_1
输入特定的此回购帐户凭据,这将“绑定”此帐户的回购。因此,在您的机器中,您可以指定任意数量的帐户/回购。
想要更详细的解释,你可以看看我在youtube上找到的这个很酷的视频: https://youtu.be/2MGGJtTH0bQ
以防你不想弄乱~/。这里提到的Ssh /config文件,你可以运行git config core。ssh -i ~/.使用实例Ssh /custom_id_rsa”,你想从一个不同的帐户提交。
其余的设置是相同的:
使用SSH -keygen -t rsa -f ~/为第二个帐户创建新的SSH密钥。SSH -f ~/.ssh/custom_id_rsa 使用您的其他帐户登录github,转到https://github.com/settings/keys,并粘贴~/.ssh/custom_id_rsa.pub的内容 确保您使用SSH而不是HTTPS作为远程url: git remote set-url origin git@github.com:upstream_project_teamname/upstream_project.git
使用个人访问令牌的个人目录.gitconfig
如果您不想修改您的主机文件,使用SSH密钥,或者为每个repo设置一个.gitconfig,那么您可以使用一个个人的.gitconfig,它基本上包含在根级配置中。给定一个OSX目录结构
# root level git config
~/.gitconfig
# your personal repos under some folder like
../personal/
../home/
~/Dropbox/
在你的个人文件夹中添加一个.gitconfig,比如~/Dropbox/.gitconfig
[user]
email = first.last@home.com
name = First Last
[credential]
username = PersonalGithubUsername
helper = osxkeychain
在根级.gitconfig中添加includeIf部分,以便在您的个人目录中获取您的个人配置。这里的任何设置都将覆盖根配置,只要includeIf出现在您想要覆盖的设置之后。
[user]
email = first.last@work.com
name = "First Last"
[credential]
helper = osxkeychain
[includeIf "gitdir:~/Dropbox/**"]
path = ~/Dropbox/.gitconfig
尝试推动你的个人回购或从你的私人回购
git push
# prompts for password
当出现提示时,输入您的个人密码,或者最好输入您在帐户开发人员设置中创建的个人访问令牌。输入该令牌作为密码。
假设你已经在使用git-credential-osxkeychain,你的个人凭证应该存储在你的钥匙链中,所以两个github条目将显示,但使用不同的帐户。