Git 合併兩個不同的倉庫
阿新 • • 發佈:2021-02-17
應用場景:
應用場景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倉庫的一個分支,然後合併進來
更多內容,請掃碼關注~