【git搭建】建立多个git帐号

实习开发中咱们可能一个机子上配置多个git帐号,如github.com,oschina.com 或者工做帐号,私人帐号,这时候就2个帐号用一个key,确定会冲突,有一个会提示没权限(帐号和密码对应不上)git

ssh key-gen 命令学习

如:github

ssh key-gen -t rsa -C "comment"

密钥的类型 : -t = The type of the key to generate
识别密钥的注释:-C = comment to identify the key

密钥注释你能够输入任何内容shell

解决方案:配置两套keybash

1.生成第一套

  • 生成ssh key

使用git bash 进行操做 ssh

ssh-keygen -t rsa -C "xxxxx@qq.com"
  • 生成和部署gitLab的SSH key 

在~/.ssh/目录下生成id_rsa.pub公钥添加到github的ssh秘钥处。ide

.ssh 目录在 C盘 用户/username/目录下学习

  • 测试gitLab的SSH秘钥是否部署成功
ssh -T github.com

2.生成第二套

  • 生成ssh key
ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -C "yyyyy@qq.com"

使用 -f 参数,明生产文件的名称。不然会生成同名文件 id_rsa ,会覆盖以前生产的。测试

  • 生成和部署gitLab的SSH key 

在~/.ssh/目录下生成id_rsa_work.pub公钥添加到github的ssh秘钥处。code

  • 测试gitLab的SSH秘钥是否部署成功
ssh -T git@139.198.189.75

这里的139.198.189.75是公司内部的gitLab的地址开发

3.添加秘钥到SSH Agent

由于默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加的SSH agent中。

ssh-agent bash

ssh-add ~/.ssh/id_rsa  
## 能够经过ssh-add -l来确认结果 

ssh-add ~/.ssh/id_rsa_work  
## 能够经过ssh-add -l来确认结果 

4.建立并配置config文件

在.ssh目录下建立一个config文本文件,添加相关配置

主要有如下配置:

  • HostName 这个是真实的域名地址
  • IdentityFile 这里是id_rsa的地址
vi .ssh/config

# 加上如下内容


# 配置 gitLab
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa
PreferredAuthentications publickey
User Boy-A

# 配置工做
Host 139.198.189.75:88
HostName 139.198.189.75:88
IdentityFile ~/.ssh/id_rsa_work
PreferredAuthentications publickey
User Boy-B

该文件的主要做用就是指明各个git账号对应的User以及IdentityFile的文件位置。当配置完毕后,在各个项目repo中应用本身的用户名以及邮箱

其中 上面的 IdentityFile 能够用绝对地址,如 /c/Users/shellay/.ssh/id_rsa ,在.ssh 目录下使用 pwd 获取

5.用户名和邮箱的配置

由于一台电脑上配置了多个git帐号,因此就不能再配置全局的用户名和邮箱了,而是在不一样的仓库下,若是须要链接不一样的git帐号,配置相应的局部用户名和邮箱便可,若是以前配置过全局的用户名和邮箱,须要取消global配置

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

全局配置在 C:/用户/username/gitconfig 文件中

配置局部的用户名和邮箱

git config user.name "xxxx"
git config user.email "xxxx@xx.com"

局部配置都在 当前项目中的 .git/config 文件中