git - 第二个帐户/ repo 推送问题

标签 git github

我对这件事还很陌生——我有一个专业的 github 公司帐户,是在过去几个月里首次建立的。最近,我一直在学习一些 Rails 教程。我创建了一个教程存储库并毫无问题地推送到我的个人帐户下。

但是,由于某种原因,在按照我尝试处理的第二个项目的步骤进行操作后,我收到此错误消息:

ERROR: Permission to <username>/<projectname>.git denied to <businessaccount>.
fatal: The remote end hung up unexpectedly

为什么它尝试使用我的企业帐户来执行此存储库?我该如何让它使用我的个人帐户信息?

谢谢!

最佳答案

git 使用远程服务器进行身份验证的帐户信息可以作为远程 URL 的一部分提及。

<USERNAME>@<REMOTE_HOSTNAME>:<REMOTE_REPO_URL>

如果您不提供任何用户名,git 会自动开始使用您当前登录用户的用户名。

不幸的是,Github 不允许多个帐户使用同一组 SSH key 。因此,您需要为您的个人 github 帐户生成另一组 SSH key (即 key 对)。

  1. 为您的个人帐户生成新的 ssh key 对

    ssh-keygen -t rsa -f ~/.ssh/id_rsa.personal -C "Keypair for Personal Github account"
    
  2. 将以下行添加到您的 ~/.ssh/config 文件中,以使 SSH 在通过 personal.github.com 引用主机时使用新的 key 对:

    Host personal.github.com
    User git
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.personal
    
  3. 对于您计划使用个人 github 帐户的每个存储库,请确保在 URL 中使用主机名 personal.github.com 而不是 github.com。此外,git@ 用户名部分可以省略,因为我们已经在 ~/.ssh/config 中提到过。所以现在这些都应该可以工作了。

    git clone personal.github.com:keecham/blacktie.git
    git clone <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cea9a7ba8ebeabbcbda1a0afa2e0a9a7baa6bbace0ada1a3" rel="noreferrer noopener nofollow">[email protected]</a>:keecham/blacktie.git
    
  4. 您的工作 github 帐户和 key 不会受到影响,因此不会受到影响。

关于git - 第二个帐户/ repo 推送问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624410/

相关文章:

javascript - 如何更改 JavaScript 扩展并在我的项目中使用它而无需等待批准?

Github 告诉一个用户存在冲突,但不告诉另一用户

url - 删除 git.io 缩短的 URL

php - 当我使用来自 github 的 laravel 运行克隆 PHP 项目时出错

git - 放弃未暂存的文件夹

python - 使用 Rietveld Code Review Tool 进行代码审查

node.js - Heroku 无法获取/

git - 迁移到 LFS 后存储库仍然很大

github - 如何在 Gitlab 中删除 fork 项目

git clone 以 Broken Pipe 结束