Mac git配置多账号

说明:git配置网上资源已经很丰富,本人只是整理测试,再次分享记录,以便后来者查阅。

使用场景

工作中或者自主学习时候,会使用到同一台计算机多个git账号,比如github,gitlab,gitee


情景一:

gitlab,gitee,github使用的是同一个邮箱账号注册情况

只需要使用ssh-key 工具生成一次公私秘钥,然后将公钥id_rsa.pub 设置在各个git网站的ssh公钥上,即可

情景二:

gitlab,gitee,github使用不同邮箱账号注册情况

准备工作:

首先,需要准备好对Git的全局用户进行配置。在初次安装Git时,往往会使用如下的命令配置全局用户名和邮箱:

git config --global user.name "xxx" // 配置全局用户名,如Github上注册的用户名
git config --global user.email "[email protected]" // 配置全局邮箱,如Github上配置的邮箱

这个--global选项,是指这里配置的user.name和user.email是相对于全局进行配置的,即不同的Git仓库默认的用户名和邮箱都是这个值。由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。对此,有两种处理方法:

如果之前已经使用该命令进行配置,则先使用如下命令清除

git config --global --unset user.name
git config --global --unset user.email

如果不确定是否已经配置过,可以使用下面的命令查看

git config --global user.name
git config --global user.email

1.切换.ssh目录

cd ~/.ssh

2.使用ssh-keygen生成公私钥

ssh-keygen -rsa -C [email protected]
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): id_rsa_gitlab 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/xxxx/.ssh/id_rsa_gitlab 
Your public key has been saved in /Users/xxxx/.ssh/id_rsa_gitlab.pub
The key fingerprint is:
SHA256:4yNiKfqWOLUU1fSxG0PO49F+LQ9ofgNcq0QLEQhR6EI [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    oBo.=.       |
|  E o o= =       |
| . o    @ o .    |
|  o .  . @ + o   |
|   o    S O = .  |
|  o  . . = + +   |
| +.o+ . o o o .  |
|o.+o . . . . .   |
|.+.              |
+----[SHA256]-----+

注意:这里默认秘钥文件名称id_rsa,可以根据不同git自定义不同名称

3.将私钥配置到本地

SSH协议的原理,就是在托管网站上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成了秘钥文件,接下来需要使用秘钥文件,首先是在本地使用秘钥文件:

ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地

为了检验本地是否添加成功,可以使用ssh-add -l命令进行查看

4. 配置多账号本地config

新建config文件:touch config

Host github // 网站的别名,随意取
HostName github.com // 托管网站的域名
User xxxx // 托管网站上的用户名
IdentityFile ~/.ssh/id_rsa_github // 使用的密钥文件

// GitLab的配置相同
Host gitlab
HostName gitlab.com
User xxxx
IdentityFile ~/.ssh/id_rsa_gitlab

config文件详解

每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可

Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
HostName         这个是真实的域名地址
IdentityFile         这里是id_rsa的地址
PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User            配置使用用户名

5.配置公钥到Git网站

以Gitlab为例子,先在本地复制公钥。进入.ssh目录,使用vim id_rsa_gitlab.pub查看生成的GitHub公钥,全选进行复制。

登录gitlab,点击右上角头像选择settings,在打开的页面中选择SSH keys


Mac git配置多账号_第1张图片
屏幕快照 2019-06-21 下午2.07.12.png

填写公钥key ,title 可以随意起

你可能感兴趣的:(Mac git配置多账号)