目录
在开发过程中会遇到这么一种情况,自己同时负责不同的项目,并且需要连接不同的git仓库进行代码的开发、更新、提交。一台电脑怎样同时管理多个git仓库就变成了今天研究的重点。这里以一台电脑同时连接gitee和gitlab两个不同的远程仓库为例。一台电脑同时连接更多不同的远程仓库原理也是一样。
gitee | gitlab | |
注册邮箱 | 111111@qq.com | 222222@qq.com |
地址(ip或者域名) | gitee.com | 192.168.xx.xx |
仓库地址 | git@gitee.com:aa/bb.git | git@192.168.xx.xx:9921/cc/dd.git |
此操作在windows下打开Git Bash黑窗口操作。前提要先安装git软件。这个黑窗口和linux(centos7)的命令操作基本一致。
- # 生成gitee的ssh-key,~/.ssh/下会生成id_rsa(私钥)、id_rsa.pub(公钥)
- $ ssh-keygen -t rsa -C "111111@qq.com" -f ~/.ssh/id_rsa
-
- # 生成gitlab的ssh-key,~/.ssh/下会生成id_rsa_gitlab(私钥)、id_rsa_gitlab.pub(公钥)
- $ ssh-keygen -t rsa -C "222222@qq.com" -f ~/.ssh/id_rsa_gitlab
将生成的公匙文件里的内容,复制到各自的git上面。gitee的复制位置如下图所示:
- $ ssh-agent bash
- $ ssh-add ~/.ssh/id_rsa
- $ ssh-add ~/.ssh/id_rsa_gitlab
- #如果添加成功,此命令会打印对应的配置信息
- $ ssh-add -l
在~/.ssh目录下新建config文件,并配置两个仓库信息
vim config
- # 账号1-gitee
- HOST gitee.com
- hostname gitee.com
- User username1
- IdentityFile ~/.ssh/id_rsa
- PreferredAuthentications publickey
-
- # 账号2-gitlab
- HOST 192.168.xx.xx
- hostname 192.168.xx.xx
- Port 9921
- User username2
- IdentityFile ~/.ssh/id_rsa_gitlab
- PreferredAuthentications publickey
注意:
1、HOST要和hostname的信息一致,否则在idea应用提交时会报错。
2、User用户可以随便起。最好是仓库的登录用户。
3、IdentityFile配置的是仓库对应私匙的全路径。
4、如果有不是默认端口号的仓库,要加Port配置端口号。
5、三个及以上仓库的配置只需要往下追加这些配置参数,原理同上。
$ ssh -T git@gitee.com
$ ssh -T git@192.168.xx.xx#会出现:Welcome to GitLab,用户名 的信息就算成功了。
这里建议先取消所有的全局配置,再根据每个项目,在项目内打开Git Bash黑窗口进行各自本地邮箱和用户名的设置。
# 取消全局配置
git config --global --unset user.name
git config --global --unset user.email
# 配置项目各自用户名,邮箱
git config user.email "useremail"
git config user.name "username"
注意:这里的邮箱一定是注册git时使用的邮箱。
选择对应的项目文件夹进入,右击鼠标进入Git Bash黑窗口界面;
git config user.email "222222@qq.com"
git config user.name "haoshao"
这里要添加不同仓库对应的私匙。
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa_gitlab
注意:这里有一个问题,添加的私匙只在本窗口起作用。重新打开新的Git Bash需要重新添加。
做完上面的步骤就可以根据git命令,在不同项目目录下的Git bash窗口中提交、更新项目了。
这里也可以在IDEA编译代码工具内进行代码的提交,首先需要在Git Bash使用git命令初始化、下载、提交、关联远程不同的仓库到本地。使用Idea打开关联不同远程的仓库就可以对不同的仓库项目分别进行提交了。
IDEA也要设置本地用户名和邮箱,设置位置如下图: