2012-06-08 50 views
7

我有以下的git樹:拆分的Git分支成單獨的回購

branch v2 =>     /--- [lots of work] --- [new version] --- ref_d 
          /
    root --- ref_a --- ... --- ref_b (project reset) 
      \ 
branch v1 => \ --- [some works] --- ref_c 

由於V1和V2真的不同,兩個不同的團隊將保持v1和v2,我想兩個獨立的分支兩到不同的git存儲庫爲:

repo_v1 : from root to ref_c 
repo_v2 : from ref_b to ref_d 

我應該怎麼做? 謝謝。

回答

11

以下假設您將您的兩個單獨的新回購設置爲名爲repo_v1repo_v2的遙控器。

V1的分支很簡單:

git push repo_v1 ref_c:v1 

第2版分支並不難:

git checkout --orphan v2 ref_b 
git cherry-pick ref_b..ref_d 
git push repo_v2 v2 

git checkout --orphan <branchname> <startpoint>創建一個從指定點開始,但沒有一個全新的歷史有任何承諾的父母。)