2011-06-21 52 views
6

我希望這似乎並不明顯。我有兩個git存儲庫。我們決定將第一個分支的一個分支分成一個git子模塊。現在我一直在使用這個子模塊,但是人們已經將提交到第一個存儲庫提交到分支模塊中。Git - 從不同的存儲庫合併分支

如何將第一個存儲庫中分支的更改合併到新創建的第二個存儲庫中? (我們現在作爲子模塊使用)

我曾嘗試加入另一個遠程進入第二回購和跨合併分支,使用:

git remote add otherOrigin [email protected]:originalRepo.git 
git merge otherOrigin originalBranch 

但是我得到:

fatal: 'otherOrigin' does not point to a commit 

謝謝

+0

似乎是http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories –

回答

2

如果兩個回購,對於給定的分支(在Repo1中分成一個子模塊,同時保存在回購2中),最初有一個通用歷史記錄,那麼它應該是可能的,在理論上:

  • 在Repo2分裂分支作爲一個單獨的回購
  • 添加個人回購作爲當前子模塊回購的遠程
  • 嘗試和執行從那裏合併。

但是,如果您必須定期重複該過程(除非您可以編寫腳本),否則這可能很快成爲拖動。

+0

的重複...然後重複打亂人們頭部的重複它。 ;-) – ebneter

+1

對不起,我之前沒有接受過這個,我太忙了,人頭過頭了 – binarycreations

+0

@格拉漢姆:沒問題。我發佈的答案已經超過了* 3 *年;)我不太確定,如果我想知道他們在那段時間忙於做什麼...... – VonC

1

克隆您的存儲庫。現在使用filter-branch來保留對子模塊應該進行的更改。添加此回購作爲您的子模塊的遠程。從該新遠程獲取分支。使用git rebase --root --onto將更改「放置」到子模塊的歷史記錄中的某個點。

希望這會有所幫助。