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
- 为什么会“串号”?
很多人在多账号管理时遇到的“串号”问题,根源就在于提交代码时用的是全局配置,而推送代码时用的是另一套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
浙公网安备 33010602011771号