Git 多账户配置
情景:Git想配置多用户,一个连公司的Gitlab,一个连自己的Github
1. 清除Git全局用户信息
在使用git的时候,一般都会先配置了git全局用户信息。如果之前配置过git全局用户信息,首先需要清除全局用户信息
git config --global --unset user.name //清除全局用户名
git config --global --unset user.email //清除全局邮箱
2. 生成SSH密钥
密钥对默认保存在C:\Users\user.ssh(各个电脑路径名称可能有区别)目录下,先删除原先的id_rsa、id_rsa.pub
1. 生成 github 仓库密钥
在github中运行:
ssh-keygen -t rsa -C "<你的github邮箱地址>"
按下 ENTER 键后,会有如下提示:
在这里输入公钥的名字,默认情况是叫 id_rsa,为了和后面的 gitlab 配置区分,这里输入 id_rsa_github。输入完毕后,一路回车。
2. 生成 gitlab 仓库密钥
步骤和上面一样,运行:
ssh-keygen -t rsa -C “<name@test.com>”
文件名改为:id_rsa_gitlab
3. 添加公钥
将公钥分别保存在Github,GitLab的用户Settings > SSH keys中
4. 添加私钥
- 打开管理私钥权限
ssh-agent bash
- 添加私钥
ssh-add /c/Users/user/.ssh/id_rsa_github //将GitHub私钥添加到本地
ssh-add /c/Users/user/.ssh/id_rsa_gitlab //将GitLab私钥添加到本地
添加完毕后,可以通过执行 ssh-add -l 验证下,如果都能显示出来和下面一样,就 OK 了
5. 管理密钥
通过以上步骤,公钥、密钥分别被添加到 git 服务器和本地了。下面我们需要在本地创建一个密钥配置文件,通过该文件,实现根据仓库的 remote 链接地址自动选择合适的私钥。
在.ssh文件夹下,新建config(提示:没有文件后缀)
Host github
HostName github.com
User xxx
IdentityFile /c/Users/user/.ssh/id_rsa_github
Host gitlab
HostName gitlab.mygitlab.com
User xxx
IdentityFile /c/Users/user/.ssh/id_rsa_gitlab
Host:仓库网站的别名
HostName:仓库网站域名(IP 地址)
User:仓库网站上的用户名
IdentityFile:私钥的绝对路径(配置自己电脑的文件保存地址)
6. 仓库配置
全局用户信息已被清除了,我们需为每个项目单独配置用户名信息,在对应项目中打开git运行以下命令(gitlab、github二选一)
1. 配置gitlab
git config --local user.name "用户名"
git config --local user.email "<邮箱地址>"
连接测试,运行
ssh -T git@github
2. 配置github
git config --local user.name "用户名"
git config --local user.email "邮箱地址"
连接测试,运行
ssh -T git@github
如果连接成功,会返回
配置完成!!!
转载自:https://juejin.cn/post/7314202154600595467