github 切换多个账号拉取代码和推送代码

github 切换多个账号拉取代码和推送代码

第一步:检查当前Git账号

在开始配置之前,我们先弄清楚电脑当前的Git账号状态。Git的配置分为三个级别,优先级从低到高是:系统级 < 全局级 < 本地级(仓库级)。我们最常操作的是全局和本地配置。

1. 查看全局配置

这是你电脑的默认Git身份,会应用于大多数没有单独配置的仓库。
打开终端,输入以下命令查看全局的用户名和邮箱

git config --global user.name
git config --global user.email

或者查看所有全局配置

git config --global --list

2. 查看当前仓库的本地配置

如果你在某个项目目录下,可以查看这个仓库特有的配置,它会覆盖全局配置

git config user.name
git config user.email

或者查看当前仓库的所有本地配置

git config --local --list
  1. 为什么会“串号”?
    很多人在多账号管理时遇到的“串号”问题,根源就在于提交代码时用的是全局配置,而推送代码时用的是另一套SSH密钥。这两者不匹配,就会导致推送失败或提交者信息混乱。
    要安全、优雅地管理多个GitHub账号,最佳实践就是“一个账号,一套独立的SSH密钥”。这样,一个密钥泄露不会影响其他账号,安全性更高。

第二步:为账号生成独立的 SSH 密钥

使用powershell打开终端生成SSH密钥

1. 生成个人账号的 SSH 密钥

cd ~   //回到主目录
dir .ssh //确认.ssh文件夹是否存在,如果不存在自己手动创建一个。这里不介绍这个


ssh-keygen -t rsa -b 4096 -C "personal@example.com" -f ~/.ssh/id_rsa_personal
//假设我的账号是duwenlongTest@outlook.com 那么指令就是 ssh-keygen -t rsa -b 4096 -C "duwenlongTest@outlook.com" -f ~/.ssh/id_rsa_personal
//后续会让你设置密码。需要输入2次,确保输入一致
//系统会提示你输入密码(passphrase),建议为了安全输入一个独立密码。
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .\.ssh\id_rsa_personal
Your public key has been saved in .\.ssh\id_rsa_personal.pub

2. 把公钥添加到你的 GitHub 账号

2.1 查看并复制公钥内容

在 PowerShell 中运行:

type .\.ssh\id_rsa_personal.pub

终端会输出一大串以 ssh-rsa 开头、以duwenlongTest@outlook.com结尾的文本,全选复制下来。

2.2 登录 GitHub 并添加

  • 浏览器登录你的 GitHub 账号(duwenlongTest@outlook.com)

  • 点击右上角头像 → Settings

  • 左侧菜单选择 SSH and GPG keys

  • 点击绿色按钮 New SSH Key

  • Title 随便填,比如 My-Windows-PC

  • Key 粘贴刚才复制的内容

  • 点击 Add SSH Key

    3. 配置 ~/.ssh/config 文件(为多账号做准备)

    我们不把这个密钥设为全局默认,而是给它起一个专属别名,这样以后即使添加第二个账号的密钥,也不会互相打架。

    3.1. 检查或创建 config 文件

    在 PowerShell 中执行:

    notepad .\.ssh\config
    

    (如果提示文件不存在,选择“是”新建一个)

    3.2. 写入以下内容(针对你刚生成的个人密钥):

    # 个人账号(duwenlongTest@outlook.com)  //这一行不需要。但是要记得核心是github.com-personal
    Host github.com-personal
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_rsa_personal
    

    保存并关闭记事本。

    4. 测试连通性

    在 PowerShell 中运行:

    ssh -T git@github.com-personal    //后面这个连接是我们上一步配置的Host  对应的github.com-personal
    

    他让你输入密码。你输入刚才的密码就可以了。
    如果看到类似下面的提示,就说明密钥配对成功,可以正常拉取/推送了:
    Hi duwenlong2! You've successfully authenticated, but GitHub does not provide shell access.

    5.接下来的选择

    以后克隆仓库时,把地址中的 github.com 换成 github.com-personal 即可,仓库和你权限配置也有关系,比如这个微软的仓库我只有拉取的权限。例如:

    尽量每次拉取之前都执行一下看连接测试是否可用,是哪个账号
    ssh -T git@github.com-personal
    然后再拉取。
    git clone git@github.com-personal:microsoft/PowerToys.git
    
posted @ 2026-07-22 21:10  杜文龙  阅读(5)  评论(0)    收藏  举报