需求

之前一直采用的第三方的代码托管平台,最近公司内部采购了一台服务器,来做公司内部的代码仓库,所以需要将之前的代码添加到新的仓库中。

实现

连接局域网的GitLab

设置本地的hosts文件

192.168.*.** **.******.com

这里推荐一款切换host文件的软件 SwitchHosts!,对于切换开发环境来讲方便。

创建SSH KEY

略过….

创建项目

过程略过….. 最终得到的是项目的git地址

git@**.***.com:*****/***************.git

修改git配置文件

修改已经存在的本地项目中的.git/config

增加内容如下

[remote "other"]
        url = git@**.***.com:*****/***************.git
        fetch = +refs/heads/*:refs/remotes/origin/*

修改后的文件为如下样子

【GitLab】git一个项目托管到两个远程仓库_局域网

这样项目就有了两个remote,可以分别提交到这两个远程仓库。

最好这个仓库的分支保持一致,方便推送和管理。

使用两个远程仓库的rsa key

在部署完第二个key之后,由于上面的会覆盖掉原来的key,导致之前的仓库不能进行远程提交。

所以,需要手动增加一个配置文件,对两个远程仓库使用的key做出区分。

文件位置 ~/.ssh/config

文件内容

Host git.oschina.net
User CalvinLee
IdentityFile ~/.ssh/id_rsa

Host ****.****.com
User *******
IdentityFile ~/.ssh/id_rsa_other

需要上一步操作创建key的时候手动输入其他文件名,来做区分。

推送

我们使用的是图形化界面工具SourceTree,更新完config文件之后,会检测到远程仓库。

【GitLab】git一个项目托管到两个远程仓库_局域网_02

参考资料