Git配置多个用户

两个仓库,github上一个,gitlab上一个,用户名与密码不同,而且两个项目都需要处理。这时候就需要配置多个用户,进行不同仓库的操作。

1. 清除之前的全局配置

# 列出全局用户名,邮箱配置
git config --global --list
 
# 重置用户名和邮箱
git config --global --unset user.name
git config --global --unset user.email

2. 生成新的秘钥

删除旧的秘钥: 旧的秘钥存放在用户目录的.ssh文件夹中,删除其中的 id_rsaid_rsa.pub 之类的公钥和密钥文件。

生成新的秘钥:

cd ~/.ssh
ssh-keygen -t rsa -C "123456@qq.com"
#设置文件名,自动生成私钥和公钥(.pub)
Enter file in which to save the key ((/c/Users/Administrator/.ssh/id_rsa)): id_rsa_github
#将ssh key添加到SSH agent中 
ssh-add ~/.ssh/id_rsa_github

  

报错:Could not open a connection to your authentication agent.解决方法

ssh-agent bash

3. 添加ssh key

将公钥配置到github和gitlab中。

cat ~/.ssh/id_rsa_gitlab.pub

4. 管理秘钥

 在.ssh文件夹需要创建秘钥配置文件config,用来配置不同的秘钥连接不同的仓库。

Host github
HostName github.com
User binfenshengdai
IdentityFile ~/.ssh/id_rsa_github
PreferredAuthentications publickey

Host gitlab
HostName gitlab.mygitlab.com
User test
IdentityFile ~/.ssh/id_rsa_gitlab
  • Host: 仓库的别名,可以随意取名
  • HostName: 仓库网站的域名
  • User: 仓库上面的用户名
  • IdentityFile: 私钥的绝对路径
  • PreferredAuthentications    配置登录时用什么权限认证

验证连接是否成功:

ssh -T git@github

ssh -T git@gitlab

5. 仓库配置

两种方案都可行,选其一即可 

  • a)、我们需要为每个仓库单独配置用户名信息,假设我们要配置 github 的某个仓库,进入该仓库后,执行:
git config --local user.name "username"  #cat ~/.ssh/config
git config --local user.email "username@qq.com"
  • b)、添加远程仓库的时候要注意了。 不能是用服务商提供的地址git@github.com:xxxx应该用 git@github (config中的Host)来替换  github.com 这个域名其它不变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值