git多账户本人解决方案 - aierlma/git_instructions GitHub Wiki

请看~/.ssh/config文件,如果创立了多账户,应该如下所示

Host aierlma
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

Host school
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_school

其中Host就是个配置名,而HostName才是重要的连接的名字。连接GitHub的话User 统一写git。 使用时如下,后面是GitHub提供的ssh下载。

git clone aierlma:aierlma/wheel.git

就会使用ssh连接,并且使用名称叫aierlma的配置。

ssh -T aierlma

可以用以上行来测试 输出如下

PS C:\Users\aierlma\.ssh> ssh -T aierlma
Hi aierlma! You've successfully authenticated, but GitHub does not provide shell access.

现在考虑一个常见的场景,你在本地新建了一个git仓库(事先通过git init建立了),现在要把它放在GitHub上。 首先在GitHub上建立一个空仓库。GitHub会给你一些提示。如

git remote add origin [email protected]:username/repo.git
git push -u origin master

这可能会失败 别急,因为你用的是多账户,所以可能会遇到ssh使用的账户和远程不匹配的问题。例如,你想要使用school的配置。因此这样设置一下。

检查和更新远程仓库地址

你可以通过以下命令检查当前的远程仓库配置:

git remote -v

如果输出显示的是像 [email protected]:username/repo.git 这样的地址,你需要将其更改为使用你的 SSH 配置文件中定义的别名。例如,如果你想使用 school 的配置,你应该修改为:

git remote set-url origin school:username/repo.git

这里的 username/repo.git 应该替换为你的 GitHub 仓库路径。 接下来就可以传输了!