目前同时使用Gitlab、Github、腾讯Coding,所以我的笔记本需要配置多个git用户。

基本环境

  1. Windows 10 操作系统
  2. 已安装Git

配置多个Git账号

1. 移除Git全局配置

如果之前没有配置过git账户,可直接跳至 【2. 配置 Git 多用户】

  1. 右键【Git Bash Here】打开Git命令行
  2. 输入命令:git config --list查看全局配置
  3. 使用以下命令移除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 主机名
公司私有Gityournameyourname@git.company.comgit.company.com
Githubnicknamenickname@github.comgithub.com
腾讯Coding123123123@qq.com123123123@qq.come.coding.net
Giteegiteename@163.comgiteename@163.comgitee.com
阿里 Gitalname@163.comalname@163.comcodeup.aliyun.com

打开【Git Bash】,输入:

  1. 生成公司 Gitlab 公钥
ssh-keygen -t rsa -C "yourname@git.company.com"

Gitlab的公钥名称输入:id_rsa_gitlab

  1. 生成 Github 公钥
ssh-keygen -t rsa -C "nickname@github.com"

Gitlab的公钥名称输入:id_rsa_github

  1. 生成 Coding 公钥
ssh-keygen -t rsa -C "123123123@qq.com"

Gitlab的公钥名称输入:id_rsa_coding

  1. 生成 Gitee 公钥
ssh-keygen -t rsa -C "giteename@163.com"

Gitlab的公钥名称输入:id_rsa_gitee

  1. 生成 Aliyun 公钥
ssh-keygen -t rsa -C "alname@163.com"

Gitlab的公钥名称输入:id_rsa_aliyun

  1. 将各枚公钥添加到各个平台

登录各个 gitlab 平台,将生成的公钥提交到平台当中。

  1. 添加私钥

将公钥添加到服务器上后,还需要将私钥添加到本地中,不然无法使用

# 启用代理模式
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:Usersusername\.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"