GIT多仓库管理
简介
我们开发的时候,需要把代码同步到多个远程仓库中去。此次项目开发,我们首先基于gitlib
开发,开发到一定阶段,我们准备开源,于是上线码云gitee
,这时新建了一个仓库,以前的提交记录留在了内网的gitlab
,并且以后的开发均在码云gitee
进行。而后,因为内网项目需求,需要同步管理仓库gitlab
和gitee
,这个时候就需要同步代码了。
方法有很多,我们介绍一种。
1.关联远程库
我们以gitee
为主体,从gitee
中clone
出一份本地仓库。然后,关联gitlab
的远程仓库:
git remote add gitlab git@10.12.3.198:luoshunyuan/OneOS-Lite.git
关联完成后,使用
git remote -v
查看:gitlabgit@10.12.3.198:luoshunyuan/OneOS-Lite.git (fetch)
gitlabgit@10.12.3.198:luoshunyuan/OneOS-Lite.git (push)
origingit@gitee.com:xuxeu/OneOS-Lite.git (fetch)
origingit@gitee.com:xuxeu/OneOS-Lite.git (push)
2.拉取
gitee
和gitlab
代码
因为,我们的提交都以gitee
为主,因此,首先拉取gitee
的代码。git pull
我们在第一次同步的时候,需要拉取
gitlab
代码,并创建本地分支:git clone git@10.12.3.198:luoshunyuan/OneOS-Lite.git
git checkout -b dev origin/dev
3.提交到
gitlab
在关联好的gitee
仓库中,执行命令来合并gitee
代码到gitlab
仓库中:git push gitlab dev
【GIT多仓库管理】这是,如果报错无法推送,则可以强制推送:
git push gitlab dev -f
4.合并历史记录 执行了第三步操作后,
gitlab
远程仓库中将只会存在强制推送的gitee
的历史记录了。但,还好我们之前在第二步,有拉过
gitlab
代码,并创建了本地分支。因此我们执行拉取操作,这时它会提醒我们:fatal: refusing to merge unrelated histories
这是可以执行以下命令,来忽略版本不同造成的影响:
git pull --allow-unrelated-histories
然后,进行合并
merge
,推送代码。这时,我们可以在远程仓库上看到,所有的历史记录都已经回来了。5.之后的同步 之后的同步就比较简单了。每次都从
gitee
远程仓库拉取代码到本地,然后再次推送到gitlab
即可。关注&&联系 gitee: https://gitee.com/cmcc-oneos/OneOS-Lite
docs: https://oneos-lite.com/
公众号:CMCC-OneOS
推荐阅读
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 爱就是希望你好好活着
- 昨夜小楼听风
- 知识
- 死结。
- 我从来不做坏事
- 烦恼和幸福
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- Linux下面如何查看tomcat已经使用多少线程