1. 程式人生 > 其它 >Git 合併兩個不同的倉庫

Git 合併兩個不同的倉庫

技術標籤:Gitgitgithubgitlab後端前端

應用場景:

應用場景1:A公司的幾個專案是找第三方B公司做的,每次發版上線的時候,A公司需要把B公司的程式碼合併到自己的程式碼庫,然後發版部署

應用場景2:有系統基礎腳手架B,A系統是在這個腳手架基礎上開發的,A和B不在一個git倉庫中,有時候腳手架B也會更新迭代,這個時候就需要把腳手架B合併到已經開發的系統A中

以上兩個場景,都需要合併兩個不同倉庫的程式碼

部署步驟:

下載A公司的程式碼分支,並切換到test分支

git clone https://git.test1.tech/project/A.git 
git checkout test 

新增需要合併的B公司遠端倉庫

git remote add project_B http://git.test2.com/project/B.git 

把project_B遠端倉庫中資料抓取到本倉庫

git fetch project_B 

checkout 切換到project_B的master分支上,命名為test_B

git checkout -b test_B project_B/master 

// 檢視所有分支,可以看到 master、test、test_B三個分支 
git branch 

切換到test分支

git checkout test 

合併

git merge test_B 

合併報錯:

fatal: 拒絕合併無關的歷史 

解決:

git merge test_B --allow-unrelated-histories 

合併完成後會出現很多衝突(第一次合併會出現很多衝突,後續會好很多),需要再原生代碼中解決衝突,然後編譯沒有問題,再提交到test中

git push

最後把test分支合併到master上線就可以了

本文的思路是偽造遠端的B倉庫為A倉庫的一個分支,然後合併進來

更多內容,請掃碼關注~