2012-05-25 26 views
1

1個月代碼前,我開始一個新的功能正在研究我們在GitHub上的私人庫之一。我克隆了存儲庫並將其分支。從那以後,我一直在這個分支上工作。如何合併我的代碼在不同的倉庫進來混帳

同時代碼被轉移到GitHub上不同的存儲庫。現在我需要將我所做的與新的發展相結合。

我的想法:

1 - 簽出新的存儲庫。

2 - 查找我的倉庫和一個新的最後的共同承諾。這應該是主分支上的最後一個提交。

3 - 創建主分支和我的工作的分支之間的補丁。

4 - 補丁應用到新的存儲庫。

這是正確的嗎? git命令做3和4應該是什麼?

回答

1

git-rebase應該做你想做的,即重播更改到新的回購協議:

git remote add new-repo /path/to/new-repo 
git fetch new-repo 
git checkout hacking-branch 
git rebase hacking-branch new-repo/master 
+0

這正是我所需要的,當他們在場時我需要糾正衝突,但是它完成了工作,謝謝 –

0

如果新的資料庫是名副其實的老一叉/克隆,那麼你應該能夠簡單地更換.git/config中的URL與新的URL關聯,然後git fetch拉取新項目中的所有內容。完成後,您可以根據需要使用git rebasegit merge

如果代替跟蹤只有一個項目,要跟蹤這兩個項目(是那裏的老項目持續發展,你仍然可能要拉偶爾?),那麼你可以添加新的存儲庫作爲另一個遠程 - git remote add newproj <URL>。您甚至可以將舊的名稱重命名爲origin以外的名稱,以便您可以使用origin名稱作爲新的存儲庫。

這將避免需要去修補的路線,因爲你真的只是可以在新位置指向本地資源庫,並且將所有的新提交的直接訪問,以及舊的。