共计 1199 个字符,预计需要花费 3 分钟才能阅读完成。
简介
咱们开发的时候,须要把代码同步到多个近程仓库中去。此次我的项目开发,咱们首先基于 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
查看:
gitlab git@10.12.3.198:luoshunyuan/OneOS-Lite.git (fetch)
gitlab git@10.12.3.198:luoshunyuan/OneOS-Lite.git (push)
origin git@gitee.com:xuxeu/OneOS-Lite.git (fetch)
origin git@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 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