[英]Merge two git repositories into one, keeping (renamed) master branches
我有兩個獨立的項目,一起成長為一個。 他們都有自己的git
存儲庫。
/project/
/project/app/
/project/app/.git/
/project/helper/
/project/helper/.git/
兩個git
存儲庫都有一些獨特的分支,當然它們都有自己的master
分支。
我想將兩個項目合並為一個如此:
/project/.git/
獨特的分支不相關,可以刪除它們。 但我希望重命名和保存主分支,例如masterApp
和masterHelper
,這樣我masterHelper
以為整個項目創建一個新的單一存儲庫,其中包含兩個分支和一個新的master
分支。
這可能嗎? 如果是這樣,它將涉及一些重命名技巧,因為每個存儲庫突然包含它們自己的父目錄。
這些存儲庫目前是本地的,因此我們不必擔心遠程起源或打破其他用戶的提交歷史記錄。 我確實希望保留各個(重命名的) master
分支的提交歷史記錄,以及(如果可能)在這些分支中暫存/跟蹤的文件。
我發現了以下類似的問題: 如何合並兩個git存儲庫?
這個問題是關於將一個存儲庫合並到另一個存儲庫中。 這使得這個問題略有不同,但我認為解決方案可能會很接近。 但是,我對git
沒有足夠的經驗來弄清楚該解決方案將如何應用於我的場景。
一種方法是創建一個單獨的git存儲庫
mkdir combinedProject
cd combinedProject
git init
然后將兩個項目作為遙控器添加到combinedProject
項目中
git remote add -f App /path/to/App
git remote add -f Helper /path/to/Helper
然后創建單獨的masterApp
和masterHelper
分支
git branch masterApp --track App/master
git branch masterHelper --track Helper/master
然后從masterApp
創建一個主分支並將masterHelper
合並到其中。
git checkout masterApp
git checkout -b master
git merge masterHelper
App
倉庫中執行相同的操作 git checkout -b masterApp
然后為Helper
添加遠程並創建masterHelper
分支
git remote add -f Helper /path/to/Helper
git branch masterHelper --track Helper/master
然后將masterHelper masterHelper
為master
git checkout master
git merge masterHelper
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.