# 前言

记录一次关于 Github 多账号 git 的配置
将仓库内容上传 AccountA 的同时上传到我的另一个账号 AccountB

# 流程

# 生成密钥

  1. 生成新的 SSH 密钥对(假设新密钥对的名称为 id_rsa_b
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_rsa_b
  1. 将新生成的公钥添加到 GitHub 账号 B (AccountB) 的 SSH 密钥列表中
  • 打开密钥文件 (C:/Users/your_name/.ssh)
cat ~/.ssh/id_rsa_b.pub

将里面的内容全部复制

  • 登录到 GitHub 账号 B,进入 “Settings” -> “SSH and GPG keys” -> “New SSH key” ,将公钥粘贴进去并保存

# 配置本地 Git 以使用新的 SSH 密钥对

在本地创建一个配置文件(例如 config),在其中添加多个账号的 SSH 配置信息。每个账号的配置信息应该以 Host 开头,后面跟着对应的域名和密钥路径

  1. 创建 config 配置文件
touch ~/.ssh/config

无需后缀

  1. config 文件内容
# Account A
Host github.com-AccountA
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_a

# Account B
Host github.com-AccountB
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_b

Account-B 为你要切换时使用的账号名称

# 尝试添加 git 仓库

git config user.name 'AccountB'
git config user.email 'AccountB@mail.com'
# Switch to account A
git remote set-url origin git@github.com-AccountA:usernameA/repo.git
# Switch to account B
git remote set-url origin git@github.com-AccountB:usernameB/repo.git

AccountB 替换为你实际要切换到的账号名
usernameB 替换为该账号下的用户名
repo 替换为你要切换到的仓库名

最后验证远程仓库是否已成功添加

# 本地仓库情况
git remote -v
# 全局登录情况
ssh -T git@github.com-AccountB.com

显示所有已添加的远程仓库及其对应的 URL

# git push

git init
git add .
git commit -am "first commit"
git remote add origin git@AccountB:usernameB/repo.git
git push -u origin master

# 遇到的问题

error: remote origin already exists
这个错误表示远程仓库 "origin" 已经存在。可能原因有:

  • 没有成功配置 SSH 到 GitHub 账号上
  • 已经添加过该仓库

# 解决方法

  1. 重新配置。请确保每一步骤准确,文件配置恰当
  2. 删除并重新添加远程仓库
git remote remove origin
git remote add origin git@github.com-AccountB:usernameB/repo.git