git多倉庫管理

簡介

我們開發(fā)的時(shí)候,需要把代碼同步到多個(gè)遠(yuǎn)程倉庫中去。此次項(xiàng)目開發(fā),我們首先基于gitlib開發(fā),開發(fā)到一定階段,我們準(zhǔn)備開源,于是上線碼云gitee,這時(shí)新建了一個(gè)倉庫,以前的提交記錄留在了內(nèi)網(wǎng)的gitlab,并且以后的開發(fā)均在碼云gitee進(jìn)行。而后,因?yàn)閮?nèi)網(wǎng)項(xiàng)目需求,需要同步管理倉庫gitlabgitee,這個(gè)時(shí)候就需要同步代碼了。

方法有很多,我們介紹一種。

1.關(guān)聯(lián)遠(yuǎn)程庫

我們以gitee為主體,從giteeclone出一份本地倉庫。然后,關(guān)聯(lián)gitlab的遠(yuǎn)程倉庫:

git remote add gitlab git@10.12.3.198:luoshunyuan/OneOS-Lite.git

關(guān)聯(lián)完成后,使用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.拉取giteegitlab代碼

因?yàn)?,我們的提交都?code>gitee為主,因此,首先拉取gitee的代碼。

git pull

我們?cè)诘谝淮瓮降臅r(shí)候,需要拉取gitlab代碼,并創(chuàng)建本地分支:

git clone git@10.12.3.198:luoshunyuan/OneOS-Lite.git
git checkout -b dev origin/dev

3.提交到gitlab

在關(guān)聯(lián)好的gitee倉庫中,執(zhí)行命令來合并gitee代碼到gitlab倉庫中:

git push gitlab dev

這是,如果報(bào)錯(cuò)無法推送,則可以強(qiáng)制推送:

git push gitlab dev -f

4.合并歷史記錄

執(zhí)行了第三步操作后,gitlab遠(yuǎn)程倉庫中將只會(huì)存在強(qiáng)制推送的gitee的歷史記錄了。

但,還好我們之前在第二步,有拉過gitlab代碼,并創(chuàng)建了本地分支。因此我們執(zhí)行拉取操作,這時(shí)它會(huì)提醒我們:

fatal: refusing to merge unrelated histories

這是可以執(zhí)行以下命令,來忽略版本不同造成的影響:

git pull --allow-unrelated-histories

然后,進(jìn)行合并merge,推送代碼。這時(shí),我們可以在遠(yuǎn)程倉庫上看到,所有的歷史記錄都已經(jīng)回來了。

5.之后的同步

之后的同步就比較簡單了。每次都從gitee遠(yuǎn)程倉庫拉取代碼到本地,然后再次推送到gitlab即可。

關(guān)注&&聯(lián)系

gitee: https://gitee.com/cmcc-oneos/OneOS-Lite

docs: https://oneos-lite.com/

公眾號(hào):CMCC-OneOS

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容