Git 多用户配置
目前同时使用Gitlab、Github、腾讯Coding,所以我的笔记本需要配置多个git用户。
基本环境
- Windows 10 操作系统
- 已安装Git
配置多个Git账号
1. 移除Git全局配置
如果之前没有配置过git账户,可直接跳至 【2. 配置 Git 多用户】
- 右键【Git Bash Here】打开Git命令行
- 输入命令:git config --list查看全局配置
使用以下命令移除name、email、password等全局配置
# 移除全局配置账户 git config --global --unset user.name #查看全局用户名 git config --global user.name # 移除全局配置邮箱 git config --global --unset user.email # 查看全局邮箱 git config --global user.email # 移除全局密码 git config --global --unset user.password # 查看全局密码 git config --global user.password
2.配置 Git 多用户
各Git平台、user 、邮箱和主机名
Git平台 username 用户名 email邮箱 hostname 主机名 公司私有Git yourname yourname@git.company.com git.company.com Github nickname nickname@github.com github.com 腾讯Coding 123123123@qq.com 123123123@qq.com e.coding.net Gitee giteename@163.com giteename@163.com gitee.com 阿里 Git alname@163.com alname@163.com codeup.aliyun.com
打开【Git Bash】,输入:
生成公司 Gitlab 公钥
ssh-keygen -t rsa -C "yourname@git.company.com"
Gitlab的公钥名称输入:id_rsa_gitlab
生成 Github 公钥
ssh-keygen -t rsa -C "nickname@github.com"
Gitlab的公钥名称输入:id_rsa_github
生成 Coding 公钥
ssh-keygen -t rsa -C "123123123@qq.com"
Gitlab的公钥名称输入:id_rsa_coding
生成 Gitee 公钥
ssh-keygen -t rsa -C "giteename@163.com"
Gitlab的公钥名称输入:id_rsa_gitee
生成 Aliyun 公钥
ssh-keygen -t rsa -C "alname@163.com"
Gitlab的公钥名称输入:id_rsa_aliyun
- 将各枚公钥添加到各个平台
登录各个 gitlab 平台,将生成的公钥提交到平台当中。 添加私钥
将公钥添加到服务器上后,还需要将私钥添加到本地中,不然无法使用# 启用代理模式 ssh-agent bash # 将 Gitlab 私钥添加到本地 ssh-add ~/.ssh/id_rsa_gitlab # 将 Github 私钥添加到本地 ssh-add ~/.ssh/id_rsa_github # 将 Coding 私钥添加到本地 ssh-add ~/.ssh/id_rsa_coding # 将 Gitee 私钥添加到本地 ssh-add ~/.ssh/id_rsa_gitee # 将 Aliyun 私钥添加到本地 ssh-add ~/.ssh/id_rsa_aliyun # 验证用户 ssh -T git@git.company.com ssh -T git@github.com ssh -T git@e.coding.net ssh -T git@gitee.com ssh -T git@codeup.aliyun.com
添加完毕后,可以通过执行
ssh-add -l
进行验证。
3. 配置config文件
config文件目录在 ~/.ssh ,~ 符号代表用户根目录。
例如,完整目录为:C:\Users\username\.ssh
创建文件,完整名为:config
# 公司gitlab
Host gitlab
HostName git.company.com
User yourname
IdentityFile ~/.ssh/id_rsa_gitlab
# GitHub
Host github
HostName github.com
User nickname
IdentityFile ~/.ssh/id_rsa_github
# 腾讯Coding
Host coding
HostName e.coding.net
User 123123123@qq.com
IdentityFile ~/.ssh/id_rsa_coding
# Gitee
Host gitee
HostName gitee.com
User giteename@163.com
IdentityFile ~/.ssh/id_rsa_gitee
# Aliyun
Host aliyun
HostName codeup.aliyun.com
User alname@163.com
IdentityFile ~/.ssh/id_rsa_aliyun
该文件分为多个用户配置,每个用户配置包含以下几个配置项:
- Host:Git 平台的别名,clone仓库时,可以替代 HostName 来使用
- HostName:Git 平台的域名(PS:IP 地址应该也可以)
- User:邮箱或用户名
- IdentityFile:私钥路径
4. 配置仓库
配置了Git多用户,每次克隆仓库后,需要给每个仓库配置用户名与邮箱,这样仓库在提交代码的时候,程序才知道提交的服务器是哪个,也就知道了该使用哪个用户的密钥。
git clone xxxxxxx(git仓库地址)
# 配置用户名
git config user.name "nickname"
# 配置邮箱
git config user.email "nickname@github.com"