2017-05-29 165 views
1

在項目開始時,我們啓動了REPO-A。該回購持續了幾個月,直到其中一名工程師決定分拆該項目。現在他通過複製目錄並開始新的回購來完成此操作。 REPO-B。現在B沒有A的歷史,A也沒有任何進一步的發展。現在我們要回到A並且將B從B中的所有內容合併到A中,並保留B的所有歷史記錄,同時它還是一個單獨的回購。這裏唯一的救贖恩典是,自從B開始作爲A的副本之後,我應該能夠將B的歷史移植到A的末尾,並且一切都應該沒問題。如何合併存儲庫副本

不幸的是我已經有一段時間試圖做到這一點。

我試圖在(REPO-A):

git add remote new REPO-B 
git checkout -b mergeAttempt 
git merge -X theirs --allow-unrelated-histories new/master 

現在,這似乎略顯工作,只回購B的歷史,現在將覆蓋所有從REPO-A存在於修改過的文件的歷史,所以沒有真實的歷史。所以我試過了:

git cherry-pick -X theirs <REPO-B first commit>..<REPO-B last commit> 

這也失敗了,因爲REPO-B在它和master中創建的分支之間有幾個合併。我還嘗試在REPO-B中創建一個分支,將repo的根重新設置爲REPO-A中的最後一個提交,帶來了令人愉快的後果。

所以我不知道該從哪裏出發。

+0

不知道git工具是否會輕易讓你這樣做,但你應該做一個A的克隆,然後將B作爲遠程克隆添加到克隆中,然後將B提取到克隆中,然後將B上的所有提交重新綁定到從A提交。如果這樣工作,你將有從A到B的1個歷史記錄。 –

+0

'他通過複製目錄來做到這一點:他複製了整個repo文件夾嗎?就像'cp -r project -A/project-B /'? – LeGEC

+0

看起來這樣,但他重新提交它,所以REPO-A的原始.git文件夾丟失了。 REPO-B認爲這是一個新鮮的回購。 –

回答

1

將REPO-A合併到REPO-B中的步驟。

CD路徑/到/ REPO-B

git的遠程添加回購-B路徑/到/ REPO-A

獲得取REPO-A

混帳合併--allow-unrelated-歷史REPO-A /主

git的遠程刪除REPO-A

來源自:git merge different repositories?

相關問題