Git多账号配置

Windows设备管理多个git账号

Posted by Zwei on July 24, 2024

Git 多账号配置

在日常开发中,我们可能会遇到这样的情况:一台电脑上既需要管理多个的Git账号以处理不同的项目代码,或者跨平台登录Git存储库。如果每次提交或拉取代码时都临时修改配置,不仅操作繁琐,而且容易出错。本文将记录一次性配置的方法,实现多账号管理。

环境

  • 操作系统:Windows

  • 项目目录A:D:/account1/

  • 项目目录B:D:/account2/

配置步骤

1. 修改全局Git配置文件

首先,打开全局Git配置文件C:/Users/用户名/.gitconfig,原始配置可能只设置了某一个Git用户名和邮箱:

1
2
3
[user]
  name = 用户名
  email = 邮箱

将上面的内容删去,修改为条件引入配置:

1
2
3
4
[includeIf "gitdir:D:/work/"]
  path = .gitconfig-account1
[includeIf "gitdir:D:/personal/"]
  path = .gitconfig-account2

2. 创建多个的Git配置文件

在用户目录下新建两个(或更多)文件,分别用于存放两个(或更多)和邮箱配置:

C:/Users/用户名/.gitconfig-account1

1
2
3
[user]
name = 用户名A
email = 邮箱A #选填

C:/Users/用户名/.gitconfig-account2

1
2
3
[user]
name = 用户名B
email = 邮箱B #选填

3. 生成SSH密钥

运行以下命令分别生成账号A和账号B的SSH密钥。-f参数可以指定生成的文件名,account1_id_rsa是账号A的,account2_id_rsa是账号B的。

1
2
3
4
5
# 第一个账号的 SSH
ssh-keygen -f c:/Users/用户名/.ssh/gitlab_id_rsa -t rsa -C name1

# 第二个账号的 SSH
ssh-keygen -f c:/Users/用户名/.ssh/github_id_rsa -t rsa -C name2

完成后会得到以下文件:

  • account1_id_rsaaccount1_id_rsa.pub
  • account2_id_rsaaccount2_id_rsa.pub

account1_id_rsa.pubaccount2_id_rsa.pub的内容分别复制到GitLab、GitHub或其他Git存储库对应的SSH设置页面。

4. 配置SSH

新建C:/Users/用户名/.ssh/config文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
Host github-account1
    HostName github.com #此处填你使用的Git存储库的域名
    User git
    IdentityFile C:\\Users\\用户名\\.ssh\\account1_id_rsa
    PreferredAuthentications publickey
 
Host github-account2
    HostName gitlab.com #此处填你使用的Git存储库的域名
    User git
    IdentityFile C:\\Users\\用户名\\.ssh\\account2_id_rsa
    PreferredAuthentications publickey
    

至此,Git多账号管理配置完成。现在,您可以在D:/account1/D:/account2/目录下,无需每次手动切换配置。

参考文献