2017-08-30 99 views
-1

由於兩個人開始自己的回購,現在有時間合併,因此我們最終得到2個不同歷史回購。合併具有不同歷史記錄的兩個不同存儲庫

起始碼相同,只是兩個不同的git init和remote。

所以條件開發D1開始和他的回購是:

開始 - > A-> B-> C->

開發商D2開始和他的回購是:

開始 - > Z-> Y-> X->

現在,希望有一個共同的分支,這兩個回購拉,他們可以合併他們自己的分支進行新的工作。

他們的工作大多是分開的,可以手動解決的小衝突。

什麼命令或過程應該是最好的?

+0

的[你如何合併兩個Git倉庫?]可能的複製(HTTPS:/ /stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories) – kowsky

+0

沒有它的不同的問題。最初的SDK在這裏是一樣的。兩者都希望有共同的分支,他們可以在本地合併,然後推向共同分支。 – coder007

+0

[合併兩個同一個項目的git倉庫]的可能重複(https://stackoverflow.com/questions/33669726/merge-two-git-repositories-of-same-project) – phd

回答

0

我的建議是剛拿到回購作爲主要的一個(讓我們說第一回購),創建一個分支有(讓說的,其他回購),然後轉儲/份(不混帳命令,只是一個普通的拷貝)的的-其他回購第一回購的工作目錄尖端作爲的-其他回購作爲HEAD,提交修改,和合並的-其他-repo分支進入首先回購的「主」分支的頭部。

如果想保留提交歷史記錄,你可以做一個rebase。

+0

是的,這使它的工作,但點這裏都想有歷史,如果可能的話不想得到新的回購。他們只是想繼續使用他們自己的git。 – coder007

+0

@ coder007然後你可以做一個rebase。 –

+1

其實你*可以*合併兩個提交沒有共同的基礎。 Git用來做這個沒有警告;現在你需要'--allow-unrelated-history'(參見[David Guan的回答](https://stackoverflow.com/a/45951036/1256452))。在任何一種情況下,Git用作「公共基礎」的實際上都是空樹,因此兩個分支技巧(與這個合成合併基礎相比)完全由「添加所有文件」組成。這有時候是你想要的,有時候不是。 – torek

0

我的建議:
它可以在D1的回購或D2的回購完成:

對於D2的側

git remote add [name-for-D1-repo] [D1-repo-url] 
git fetch --all 
git merge [name-for-D1-repo]/[D1-working-branch] --allow-unrelated-histories 
+0

大多數平凡的錯字:那就是'git fetch --all'。'--allow-unrelated-historories'標誌是new-ish;如果'git merge'拒絕它,那麼你只需要一個老的Git,它始終保持這個標誌。 – torek

相關問題