2012-03-19 28 views
13

Por razones históricas, tenemos un código fuente para diferentes versiones en diferentes repositorios git. Entonces, mientras el Proyecto A contiene la versión X de la fuente, el Proyecto B contiene la versión Y de la fuente.Importación de un git repo como una rama en otro git repo

¿Ustedes saben cómo importar el Proyecto B como una rama del Proyecto A?

Gracias

+0

¿Qué quiere decir por "proyecto Git"? –

+0

sry, me refiero a un repositorio de git – fasseg

Respuesta

16

Esto es simple con Git. Tienes que agregar el proyecto B como remoto, y luego buscar:

git remote add projectB git://url.to/projectB.git 
git fetch projectB 
+0

muy genial funcionó como un encanto – fasseg

23

No estoy seguro, lo que quieres decir con "proyecto de git". En git, los estados del código fuente se describen en commits (a.k.a. revisiones). Estos se almacenan en repositorios, pero son independientes de ellos y se pueden copiar libremente entre repositorios. De hecho, para trabajar en las fuentes, git siempre copia los commit a su repositorio local que vive en el directorio .git de su copia de trabajo. Las ramas son solo nombres que apuntan a commits.

Así que si usted tiene algunas ramas en un repositorio y otras ramas en otro repositorio, puede:

  1. Tire tanto en su repositorio de trabajo local:

    git remote add B git://url.to/project.B.git 
    git fetch B 
    
  2. Base su trabajo sobre sucursales desde B

    git checkout -b newname remotes/B/branchname 
    
  3. Empuje la branche s que obtuvo de un repositorio central para el otro:

    git push origin remotes/B/branchname:branchname 
    

    o al revés

    git push B remotes/origin/master:othername 
    

Se puede omitir el prefijo remotes/ mayor parte del tiempo.

1
  1. Primer proyecto clon A del cubo git

git clone {concentrador git Proyecto Una URL}

  1. Añadir ruta del repositorio remoto proyecto B

git remote add p rojectBrepo {git URL centro proyecto B}

    se fue a buscar ramas
  1. Proyecto B

git fetch projectBrepo

  1. verifique todas las ramas del proyecto A y proyecto B

rama git -v -a

  1. checkout cada nombre de la sucursal de proyecto B (ex: master, branch_name1)

git checkout mandos a distancia master_old -b/projectBrepo/master

  1. Empuje la rama principal de proyecto B para proyectar una como master_old

git push origen master_old

  1. checkout branch_name1 de proyecto B

git checkout controles remotos branch_name1 -b/projectBrepo/branch_name1

  1. Empuje el proyecto de brnach_name1 B para proyectar una

git push origin branch_name1