小编典典

同一台计算机上有多个 GitHub 帐户?

all

尝试从我的计算机上处​​理我的实际“工作”存储库和 git hub 上的存储库。

首先设置了工作帐户,并且一切正常。

但是,我的帐户似乎无法推送到我的存储库,该存储库是在不同的帐户/电子邮件下设置的。

我尝试将我的工作密钥复制到我的帐户,但这会引发错误,因为当然密钥只能附加到一个帐户。

如何从各自的 GitHub 凭据向两个帐户推入/拉出?


阅读 114

收藏
2022-03-06

共1个答案

小编典典

您需要做的就是使用多个 SSH 密钥对配置您的 SSH 设置。

第一个链接的相关步骤:

  1. 生成一个 SSH-key ssh-keygen -t ed25519 -C "john@doe.com",按照提示确定一个名称,例如id_ed25519_doe_company.
  2. 将 SSH 公钥复制到 GitHub~/.ssh/id_ed25519_doe_company.pub并告诉 ssh 密钥:ssh-add ~/.ssh/id_ed25519_doe_company.
  3. 创建一个包含以下内容 的config文件:~/.ssh

    Host github-doe-company
    

    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_doe_company

  4. 添加您的遥控器git remote add origin git@github-doe-company:username/repo.git或更改使用git remote set-url origin git@github-doe-company:username/repo.git


此外,如果您使用不同的角色使用多个存储库,则需要确保您的各个存储库相应地覆盖了用户设置:

设置用户名、电子邮件和 GitHub 令牌——覆盖单个 repos 的设置
https://help.github.com/articles/setting-your-commit-email-address-in-
git/

希望这可以帮助。

注意: 你们中的一些人可能需要不同的电子邮件用于不同的存储库,从 git 2.13
开始,您可以通过编辑位于以下位置的全局配置文件来基于目录设置电子邮件:~/.gitconfig使用如下条件:

[user]
    name = Pavan Kataria
    email = defaultemail@gmail.com

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

然后您的工作特定配置 ~/work/.gitconfig 将如下所示:

[user]
    email = pavan.kataria@company.tld

感谢@alexg 在评论中告知我这一点。

2022-03-06