共计 2856 个字符,预计需要花费 8 分钟才能阅读完成。
一、git 多账号使用场景
- 一般情况下,公司项目用 git 提交时会分配给你的名字和公司邮箱,而你自己会用 github、gitee、gitcoding 来管理自己的个人代码库,这时候最好区分开个人和公司提交的用户信息。
- 当你需要在不同平台以不同帐号提交代码时,需要区分提交的帐号信息,比如 github、gitee、gitcoding 等。
- 当你需要针对不同代码仓用不同账号提交代码,比如 a 仓库用 user1 帐号、b 仓库用 user2 账号。
二、git 全局帐号配置
一般情况下,我们都是一台电脑配置一个 Git 帐号,命令示例如下:
git config --global user.name "email"
git config --global user.email "email@example.com"
三、配置多个 git 帐号
步骤一、移除 git 全局配置
- 点击鼠标右键【Git Bash Here】打开 Git 命令行
- 然后输入命令:git config –list 查看全局配置,如下图:

3. 使用如下命令移除 name、email、password 等配置
# 移除全局配置用户名
git config --global --unset user.name
# 查看全局用户名
git config --global --unset user.name
# 移除全局配置邮箱
git config --global --unset user.email
# 查看全局邮箱
git config --global --unset user.email
# 移除全局配置密码
git config --global --unset user.password
# 查看全局密码
git config --global --unset user.password
步骤二、生成 user1 的 SSH KEY 并在 GitHub 上部署
- 点击鼠标右键【Git Bash Here】进入【Git Bash】,输入以下命令生成 user1 的 SSH KEY:
ssh-keygen -t rsa -C "user1@example.com" -f ~/.ssh/id_rsa_github
如下图示例:

2. 进入当前用户的 .ssh 目录查看,生成 id_rsa_github 私钥文件和 id_rsa_github.pub 公钥文件,如下截图示例:

3. 用户 user1 登录 GitHub,进入【Settings】-【SSH and GPG keys】,如下截图:

4. 点击【New SSH key】按钮,进入新建 SSH key 页面,进入如下图设置:

5. 添加完成后在【Git Bash Here】中输入以下命令测试该用户的 SSH 密钥是否生效:
# 以下命令会用默认的 ~/.ssh/id_rsa 文件
ssh -T git@github.com
# -i 指定用哪一个 rsa 文件
ssh -T git@github.com -i ~/.ssh/id_rsa_github

如图所示,因我本地已经配置了两个指定名称的 rsa 文件,默认的 id_rsd 文件不存在,所以第一次报错,需要以第二个命令进行 ssh 测试
步骤三、生成 user2 的 SSH KEY 并在 GitHub(或 Gitee、GitCoding)上部署
- 点击鼠标右键【Git Bash Here】进入【Git Bash】,输入以下命令生成 user2 的 SSH KEY:
ssh-keygen -t rsa -C "user2@example.com" -f ~/.ssh/id_rsa_gitee
如下截图:

2. 进入当前用户的 ~/.ssh 目录查看,生成 id_rsa_gitee 私钥文件和 id_rsa_gitee.pub 公钥文件,如下截图:

3. 用户 user2 登录 Gitee,进入【个人设置】->【安全设置】->【SSH 公钥】-> 添加公钥,如下截图:

查看公钥详情:

4. 添加完成后在【Git Bash Here】中输入以下命令测试该用户的 SSH 密钥是否生效:
ssh -T git@gitee.com -i ~/.ssh/id_rsa_gitee

也可以使用 ssh agent 添加密钥后进行测试。因为系统默认只读取 id_rsa,为了让 ssh 识别新的私钥,可以使用 ssh-agent 手动添加私钥:
ssh-agent bash
ssh-add ~/.ssh/id_rsa2
注:该方法仅限当前窗口有效,打开新的窗口则 ssh 连接失败。
步骤四、配置 config 文件
- 在.ssh 目录下创建一个 config 文本文件,每个账号配置一个 Host 节点。主要配置项说明:
Host 主机别名
HostName 服务器真实地址
IdentityFile 私钥文件路径
PreferredAuthentications 认证方式
User 用户名
配置文件内容:
# 配置 user1
Host user1.github.com
HostName github.com
IdentityFile C:\\Users\\lingh\\.ssh\\id_rsa_github
PreferredAuthentications publickey
User user1
# 配置 user2
Host user2.gitee.com
HostName gitee.com
IdentityFile C:\\Users\\lingh\\.ssh\\id_rsa_gitee
PreferredAuthentications publickey
User user2
2. 终端测试 SSH Key 是否生效
ssh -T git@user1.github.com -i ~/.ssh/id_rsa_github
ssh -T git@user2.gitee.com -i ~/.ssh/id_rsa_gitee
3. 配置用户名和邮箱
为各仓库单独配置用户名和邮箱
git config user.name "user1"
git config user.email "user1@email.com"
如果原先使用 HTTPS 通信,则需要修改远程仓库地址
git remote rm origin
git remote add origin git@user1.github.com:xxx/xxxxx.git
四、Git 配置文件的个性化
于个别仓库设置特定的用户名称和邮箱。
- 配置用户信息:
在本地电脑某个代码文件夹 (仓库) 目录下,使用命令设置用户名和邮箱:
git config user.name "user1"
git config user.email "user1@example.com"
这会在该代码文件夹 (仓库) 的 .git/config 文件中保存这些信息。
2. 全局与局部配置:
如果想要为特定的仓库设置不同的配置,确保不使用 --global
参数,这样设置才会仅限于当前仓库。
参考链接:
https://blog.csdn.net/q13554515812/article/details/83506172
https://developer.aliyun.com/article/1421976