Git 合並兩個不同的倉庫


場景:有一個系統基礎腳手架,很多系統都在這個腳手架基礎上開發,但是有時候這個腳手架也會更新迭代,這個時候需要把腳手架合並到已經開發系統中來,而且腳手架和現有系統不再一個Git倉庫中,這時候需要合並兩個不同的倉庫的代碼。

第一步. 下載需要合並的分支

要把需要合並的分支代碼 clone到本地。

$ git clone https://gitee.com/alingfly/ASF_Test.git

第二步. 添加需要合並遠程倉庫

$ git remote add base https://github.com/AClumsy/ASF.git

base作為遠程倉庫,添加到 本地倉庫(origin)中,設置別名為 base(自定義,這里我是為了方便區分倉庫名)

第三步. 把base遠程倉庫中數據抓取到本倉庫

$ git fetch base
  From https://github.com/AClumsy/ASF
    * [new branch]      master     -> base/master

第四步. checkount切換到base分支上,命名為 asf

$ git checkout -b asf base/master
  Switched to a new branch 'asf'
  Branch 'asf' set up to track remote branch 'master' from 'base'.
  
  //查看一下所有分支
$ git branch 
* asf
  asf_test

由於我們需要把asf分支合並到asf_test分支中去,我們在切換到asf_test分支。

$ git checkout asf_test

第五步. 合並

$ git merge asf

合並完成之后會出現很多沖突,需要在本地代碼中解決沖突,然后在提交到ASF_Test中去。

$ git push origin asf_test //上傳到遠程庫

fatal: refusing to merge unrelated histories 錯誤

在執行 merge 合並的時候出現 fatal: refusing to merge unrelated histories 錯誤。這個錯誤可能會在 git pull 或者 git push 中都有可能會遇到,這是因為兩個分支沒有取得關系。
解決方案
在操作命令后面加 --allow-unrelated-histories

$ git merge asf --allow-unrelated-histories

總結:(引用學習文章的總結)

大致思路是偽造遠程的asf倉庫為asf_test的一個分支,然后合並進來;
若是文件有沖突、或要建立子目錄,建議在asf中先解決,再進行如上操作。

引用:https://www.cnblogs.com/hongdada/p/7573923.html


作者:阿凌
出處:https://www.cnblogs.com/lfzm/p/10681412.html
【版權聲明】 作品來自於長沙.NET技術社區成員【阿凌】,有興趣了解長沙.NET技術社區詳情,請關注公眾號【DotNET技術圈】,作品版權歸作者和博客園共有,作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM