在windows上配置git支持多账号

  1. 背景

当前,git已成为主流的版本控制工具,越来越多的开发者在使用它进行开发,并且积极参与开源社区的建设。然而,在windows环境下,如何通过ssh key的方式在git客户端上配置多个账号,从而无需输入git用户名和密码,实现更高效的操作,是一个值得探讨的问题。

  1. SSH Key的生成

在Windows上,打开Git的Bash客户端命令行窗口:

然后执行

ssh-keygen
命令,生成RSA公钥和私钥:

ssh-keygen -t rsa -C mail@mail.com

执行结果如下:

生成的文件命名为

id_rsa_gitlab
,私钥的密码可以选择不设置,也可以根据个人需求进行设置。生成后,在执行命令的目录下会生成两个文件:

id_rsa_gitlab
id_rsa_gitlab.pub

这两个文件的截图如下:

可以使用其他方法生成所需的公钥和私钥对。建议使用与Git账户相同的邮箱,以便于后续区分。

  1. GitLab配置

在GitLab上,通过账户的Settings进行配置:

在左侧的SSH Key中:

将公钥中的文本内容复制到如下位置:

复制后如下:

标题可以自定义配置。

GitHub的配置与上述类似:

添加SSH Key:

  1. Windows本地的Git配置

首先,需要将生成的公钥和私钥对复制到当前用户的

.ssh
目录中。Windows中的目录如下:

# Windows
C:\Users\username\.ssh
# Linux
/home/username/.ssh

复制后,

.ssh
目录中的文件如下:

其中,

id_rsa
是GitHub的密钥对,
id_rsa_gitlab
是GitLab的密钥对。
config
文件是本文的关键,需要手动创建,其内容如下:

# 配置github.com
Host github.com
    HostName github.com
    IdentityFile C:\\Users\\username\\.ssh\\id_rsa
    PreferredAuthentications publickey
    User github_username

配置gitlab私服

Host git.xxxx.cn HostName git.xxxx.cn IdentityFile C:\Users\username\.ssh\id_rsa_gitlab PreferredAuthentications publickey User gitlab_username

上述

username
为Windows用户的当前用户名,
github_username
为GitHub上的用户名,
gitlab_username
为GitLab本地私服的用户名。

配置完成后,对上述配置进行测试,测试命令如下:

ssh -T git@github.com

测试结果如下:

测试成功即表明配置成功,两个Git账户能够访问。可以查看

known_hosts
文件,发现配置的Git主机已被自动添加。

随后就可以愉快地拉取代码了。