2012-06-08 8 views
7

Ich habe folgendes git Baum:Split git branch in separate Repo

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

Wie v1 und v2 sind wirklich anders, zwei verschiedene Team v1 und v2 halten, würde ich zwei separaten Zweig zwei unterschiedlichen git gefallen Repository als:

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

Wie soll ich das tun? Danke.

Antwort

11

Im Folgenden wird davon ausgegangen, dass Sie Ihre zwei separaten neuen Repos als Fernbedienungen mit den Namen repo_v1 und repo_v2 eingerichtet haben.

Der v1 Zweig ist einfach:

git push repo_v1 ref_c:v1 

Der v2 Zweig ist nicht so schwer:

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

(git checkout --orphan <branchname> <startpoint> schafft eine völlig neue Geschichte, die von dem angegebenen Punkt beginnt aber nicht Irgendwelche der Eltern dieses Commit haben.)