本文适用于:下载了git并已经注册多个github账号,会生成ssh密钥并与github关联的同学

配置git多账户

创建文件

在C盘(一般是)的User目录下找到.ssh文件(win用户需要打开查看项目的选项),在该目录下创建一个名为config的文件

配置文件

配置文件格式一般如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# git server one
Host one #别名
HostName github.com #真实域名
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa #用户1ssh文件路径
User one

# git server two
Host two
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two #用户2ssh文件路径
User two

# VMware
Host kali
HostName xxx.xx.xx.xxx
PreferredAuthentications publickey
IdentityFile ~/.ssh/vmware_rsa #虚拟机ssh文件路径
User root

上面的配置文件实现了多用户:两个github账号,一个VMware虚拟机远程连接,一共三个。当然,可以更多

检验是否配置好

在git bash中运行ssh -T git@hostname,上面配置文件对应的操作就是:

1
2
3
4
$ ssh -T git@one
Hi xxx! You've successfully authenticated,
$ ssh -T git@two
Hi xxx! You've successfully authenticated,

如何优雅的多用户git操作

不知道有没有同学跟我一样是有多个github账号的,而git终端只支持了一个单用户,这造成了很多的麻烦。
但是我们配置好多用户后,这个麻烦会大大的减小
先看看一般的单用户常规操作是什么:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 初始化仓库
git init
# 克隆远程仓库
git clone xxxx
# 设置remote url 仓库地址
git remote add origin xxx

# 设置用户名和邮箱
git config --global user.name xxx
git config --global user.email xxx@xxx

# 无脑提交
git add .
git commit -m ""
git push

但我们在一个用户上这样操作后,想操作另一个用户怎么办

  • 使用git clone来拉取github仓库:在使用github克隆代码时,因为配置了config, 所以会通过配置的host自动查找到git@one/git@two。
  • 修改global user.name以及global user.email:建议一般设置成比较常用账户对应的用户名和邮箱
  • 不同仓库设置不同的账户属性:我们将local(仓库级别)配置成github相关账户的账号。此时我们需要先init一个git的仓库并进入里面后执行如下命令:
    1
    2
    $ git config --local user.name 'username' 
    $ git config --local user.email 'username@gmail.com'
    意思是这个仓库代码是由配置的那个账户来管理的,但仅仅只是这个仓库