功能描述
在一台主机上配置A、B两个远程仓库,将项目a提交到远程仓库A中,项目b提交到远程仓库B中。
同样地,多个仓库的操作类似。
操作步骤
1、移除用户全局配置
移除全局配置后,我们可以在各个A、B两个仓库中配置不同的用户名和邮箱信息,即以不同身份提交代码。
# 移除全局配置账户
git config --global --unset user.name
#查看全局用户名
git config --global user.name
# 移除全局配置邮箱
git config --global --unset user.email
# 查看全局邮箱
git config --global user.email
2、生成两个密钥对
该步骤要注意 1)邮箱和仓库对应 2)密钥对文件重命名
#其中 id_rsa1为文件名 后面为对应仓库的邮箱。 此处仓库A对应163邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa1 -C “your_email@163.com”
#其中 id_rsa2为文件名 后面为对应仓库的邮箱。 此处仓库A对应qq邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa2 -C “your_email@qq.com”
3、配置多账号
在ssh文件夹下创建config文件,内容如下
Host gitee.com
HostName gitee.com
User git
#指定公钥文件
IdentityFile ~/.ssh/id_rsa1
# 这个是新加的key
#这是第二账户对应的密钥对
Host company.gitee.com
HostName gitee.com
User git
#PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa2
4、向远程仓库添加公钥
上一步结束之后,会生成两个密钥对,共四个文件。
根据功能描述,把id_rsa1内容添加到远程仓库A的ssh列表中、把id_rsa2内容添加到远程仓库B中。
5、配置项目信息
在项目文件夹下配置用户的姓名和邮箱。注意邮箱要和公钥中的邮箱一致。
在项目A中使用git bash配置用户1信息
#配置用户1的姓名
git config user.name "用户1"
#配置用户1的邮箱。
git config user.email “your_email@163.com”
在项目B中使用git bash配置用户2信息
#配置用户2的姓名
git config user.name "用户2"
#配置用户2的邮箱。
git config user.email “your_email@qq.com”
配置完成之后,即可正常推送代码。