2012-06-08 16 views
7

Tengo el siguiente árbol git:git branch Dividir en repo separada

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

Como v1 y v2 son muy diferentes, dos equipos diferentes mantendrá v1 y v2, me gustaría contar con dos rama separada de dos a diferentes git repositorio como:

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

¿Cómo debo hacer esto? Gracias.

Respuesta

11

Lo siguiente asume que tiene sus dos nuevos repos separados configurados como controles remotos llamados repo_v1 y repo_v2.

La rama v1 es fácil:

git push repo_v1 ref_c:v1 

La rama V2 no es tan difícil:

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

(git checkout --orphan <branchname> <startpoint> crea una historia completamente nueva que se inicia desde el punto especificado, pero no lo hace tener cualquiera de los padres de ese compromiso.)