为了解决git多账号的情况,我们需要对git做一下配置(这里以gitlab和github举例)
首先我们要知道,git的配置分为三个级别
system-----系统级别,可以理解为你的电脑账户信息
global-----全局级别,如果配置了,所有项目共用的账户信息
local------项目级别,单独项目配置的账户信息
这三个级别的优先级为 local > global > system
第一步---清空全局配置
git config --global --list
上述命令为查看全局git账户配置信息,如果输出的结果中包含user.name和user.email的信息
执行下面的两个命令清除git的global信息
1、git config --global --unset user.name
2、git config --global --unset user.email
第二步---清空原来ssh配置
以Mac电脑为例,进入 ~/.ssh目录下,查看目录中如果包含id_rsa、id_rsa.pub,类型的文件,全部删除
第三步---分别生成gitlab与github的公钥与密钥
生成gitlab公钥与密钥
1、ssh-keygen -t rsa -C "邮箱地址"
- 邮箱地址为gitlab的邮箱
- 执行完上述命令后,会出现如下提示
- 这时候在红框的位置输入专属于gitlab账户的名字,以备后用,我用的是id_rsa_gitlab,然后一路回车,中间如果提示overwrite?输入Y即可。
- 等到执行完,专属于gitlab的公钥密钥对就生成完毕了
- github公钥密钥对和上述一样的步骤(邮箱和名字记得改一下)
查看.ssh目录,如果出现这样的文件,说明是ok的,可以继续下面的步骤
第四步---添加对应的SSH Keys
将id_rsa_gitlab.pub文件内容复制粘贴到gitlab的SSH Keys中,
github同理
第五步---统一管理gitlab与github账户信息
打开.ssh目录下config文件并编辑,如果没有就新建一个
更改为如下(注意红色箭头的内容)
Host:仓库网站的别名
(注:Host 就是可以替代 HostName 来使用的别名,而且后面验证是否成功需要这个名字)
HostName:仓库网站的域名(IP地址也可以)
User:用户名
IdentityFile:私钥的路径
编辑完上述文件后,执行下面命令,以gitlab为例
ssh -T git@xxxx
这个命令中的xxxx就是上面config配置文件中的Host的值
执行完命令后如果输入下面内容,说明配置成功,马赛克部分是我自己的名字
github同理
第六步
完成上述步骤之后,多账号配置就完成了,但是这时候你提交代码会发现一个问题,
提交的用户名是你自己的电脑用户名,这是因为
我们并没有给仓库配置用户名---local
最开始清空了全局用户信息-----global
所以git使用系统账户信息------system
这时候我们仅需要为每个项目单独的配置local级别的账户信息即可,
在需要添加账户信息的项目中打开终端命令行,执行下面命令
git config --local user.name "xxxx"
git config --local user.email "xxxx"
执行完之后可以通过
git config --local --list
这个命令验证
这时候在这个项目再提交代码,就是你配置的这个用户名了。