村农

莫笑农家腊酒浑,丰年留客足鸡豚。


Git 本地多账号

TD

一般情况下,我们都是一台电脑配置一个Git账号,使用如下命令:

git config --golbal user.name "XXX"
git config --golbal user.email "xxx@aa.com"

配置多个git账号

步骤一、移除Git全局配置

1.右键【Git Bash Here】打开Git命令行

2.输入命令:git config --list查看全局配置,

3.使用如下命令移除name、email、password等配置

# 移除全局配置账户
git config --global --unset user.name
#查看全局用户名
git config --global user.name
# 移除全局配置邮箱
git config --global --unset user.email
# 查看全局邮箱
git config --global user.email
# 移除全局密码
git config --global --unset user.password
# 查看全局密码
git config --global user.password

步骤二、生成并在GitHub上部署SSH KEY

1.右键【Git Bash Here】进入【Git Bash】,输入以下命令生成user1的SSH KEY:

ssh-keygen -t rsa -C "user1@email.com"

2.进入当前用户的.ssh目录查看,生成id_rsa私钥文件和id_rsa.pub公钥文件;

3.用户user1登录GitHub,进入【Settings】-【SSH and GPG keys】,添加公钥;

4.添加完成后在【Git Bash】中输入以下命令测试该用户的SSH密钥是否生效:

ssh -T git@github.com

步骤三、配置config文件

1.在.ssh目录下创建一个config文本文件,每个账号配置一个Host节点。主要配置项说明:

Host      主机别名
HostName  服务器真实地址
IdentityFile  私钥文件路径
PreferredAuthentications  认证方式
User  用户名

配置文件内容:

 ##可缺省,此时ssh -T git@github.com,默认就是和拥有id_rsa.pub的github账号对接。
   #github server one
   Host github              #域名地址的别名
   Hostname github.com      #这个是真实的域名地址
   User git                     #配置使用用户名
   IdentityFile ~/.ssh/id_rsa   #这里是id_rsa的地址

   #github server two
   Host github_two
   Hostname github.com
   User git
   IdentityFile ~/.ssh/id_rsa_two

   ##如果有第三个或者更多
   #gitab server
   Host gitlab
   Hostname gitlab.com
   User git
   IdentityFile ~/.ssh/id_rsa_gitlab

2.测试

ssh -T git@gihub
   #如果配置正确会提示
   Hi your name one in github ! You've successfully authenticated, but GitHub does not provide shell access.

   ssh -T git@gihub_two
   #如果配置正确会提示
   Hi your name two in github ! You've successfully authenticated, but GitHub does not provide shell access.

   ssh -T git@gitlab
   #如果配置正确会提示
   Welcome to GitLab, Your GitLab nickname! 

3.Clone 项目到本地

#之前的方式:单个账号
git clone git@github.com:firstAccount/xxx.git #缺省config配置时
git clone git@github:firstAccount/xxx.git #config配置后,等价于第一条语句
#现在要改为,git clone git@域名别称:用户名/项目名
git clone git@github_two:secondAccount/xxx.git //就是使用域名地址的别名来区分
git clone git@gitlab:gitlabAccount/xxx.git