git合並兩個不同的倉庫


目前開發是2個倉庫,線上倉庫online_a(對應的branch分支為online),測試環境online_b(對應的branch分支為demo),測試環境需要時刻保持onine_a上的最新穩定穩定代碼同步過來。如何合並呢?特此記錄下:
在測試倉庫onine_b 上執行:

1:測試倉庫添加遠程生產倉庫(切換到自己的測試倉庫下執行以下命令,比如我的當期測試online_b.git)

git remote add online_a git@github.com:fantasy/online_a.git //將online_a作為遠程倉庫,添加到online_b中,設置別名為online_a(自定義,這里我是為了方便區分倉庫名)

2:從遠程倉庫下載,這時我們弄個新的

git fetch online_a //從online_a倉庫中抓取數據到本倉庫,注意這里是上面設置的別名
$ git fetch online-a
remote: Counting objects: 21744, done.
remote: Compressing objects: 100% (7380/7380), done.
remote: Total 21744 (delta 15332), reused 20415 (delta 14323)
Receiving objects: 100% (21744/21744), 2.44 MiB | 214.00 KiB/s, done.
Resolving deltas: 100% (15332/15332), completed with 201 local objects.
From git@github.com:fantasy/online_a.git* [new branch]          demo              -> online-backend/demo
 * [new branch]          online            -> online-backend/online
 * [new tag]             demo-last-bad     -> demo-last-bad
 * [new tag]             demo-last-ok      -> demo-last-ok
 * [new tag]             v2.0-beta         -> v2.0-beta
 * [new tag]             v2.1-days         -> v2.1-days
 * [new tag]             v2.1-dist         -> v2.1-dist
 * [new tag]             v2.2-dist         -> v2.2-dist
 * [new tag]             v2.2-nosmartbid   -> v2.2-nosmartbid
 * [new tag]             v2.2demo          -> v2.2demo
 * [new tag]             v2.3-bad-smartbid -> v2.3-bad-smartbid
 * [new tag]             demo-no-score     -> demo-no-score
 * [new tag]             tmp-repay-v1      -> tmp-repay-v1
 * [new tag]             tmp-repay-v2      -> tmp-repay-v2
 * [new tag]             transfer-dep-last -> transfer-dep-last
 * [new tag]             transfer-dep-ok   -> transfer-dep-ok

3:將online_a倉庫抓去的online分支作為新分支checkout到本地,新分支名設定為online_repo1

$ git checkout -b online_repo1 online-a/online  //注意這里也是別名online_a
Switched to a new branch 'online_repo1'
Branch 'online_repo1' set up to track remote branch 'online' from 'online-a'.

4:切換回本地測試的online_b的demo分支

$ git checkout demo
Switched to branch 'demo'
Your branch is up to date with 'origin/demo'.

5:將online_repo1合並入demo分支

git merge online_repo1

6:解決沖突:

git add .
git commit -m "合並"
git push online_repo1 online_a:online //上傳到遠程庫
git checkout demo
git merge online_repo1
git branch -d online_repo1
總結:
  1. 大致思路是偽造遠程的repo1倉庫為repo2的一個分支,然后合並進來;
  2. 若是文件有沖突、或要建立子目錄,建議在repo1中先解決,再進行如上操作。


免責聲明!

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



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