2016-02-03 89 views
2

如何將一個倉庫歷史記錄添加到另一個倉庫? 我有兩個類似的項目我想合併的歷史。 他們有些分歧,但基本上他們所做的工作現在是一樣的,這就是爲什麼我想這樣做。將一個git倉庫的歷史追加到另一個倉庫

所以基本上我想它把它從這個:

repo1/master 1a----1b---1c--1d 
repo2/master 2a--2b--2c-----2d 

這樣:

repo1/master 1a----1b---1c--1d-2a--2b--2c-----2d 
repo2/master 2a--2b--2c-----2d 

我想無論是從一個合併直上,或清除文件,所以它是可以合併的,並將其他合併到我已清理的存儲庫上?

什麼是明智的做法?

乾杯

+1

這兩個分支是否有一個共同的祖先,如果是這樣,它在圖表中的位置? –

回答

1

你的問題是一個很好的候選人做一個git rebase,這裏是我會怎麼解決這個問題:

git checkout repo2/master     # step 1 
git checkout -b repo2temp     # step 2 
git rebase repo1/master      # step 3 
git push origin repo2temp:repo1/master  # step 4 

首先,在步驟#1和#2,我創建了一個基於repo2/master分支的新臨時分支名爲repo2temp。接下來,我將這個臨時分支重新分配,該分支與repo1/master上的repo2/master看起來相同。此步驟#之後的圖如下所示:

repo1/master 1a----1b---1c--1d 
repo2temp 1a----1b---1c--1d--2a--2b--2c-----2d 

後第4步,一旦你推重訂基期repo2temp分支到遠程repo1/master分支,那麼分支將類似於以下內容:

repo1/master 1a----1b---1c--1d--2a--2b--2c-----2d 
repo2temp 1a----1b---1c--1d--2a--2b--2c-----2d 
repo2/master 2a--2b--2c-----2d 
+0

@Downvoter:我清理了一下我的答案,感謝upvote(和downvote?)。 –

+0

我認爲只有在兩個存儲庫之間存在共同提交時纔可以重新綁定? –

+0

好點。我會讓OP澄清。 –

相關問題