2010-02-09 24 views
128

Tengo una rama que me gustaría mover a un repositorio separado de Git, e idealmente mantener el historial de esa rama en el proceso. Hasta ahora he estado mirando git filter-branch, pero no puedo distinguir si puede hacer lo que quiero hacer.¿Cómo muevo una rama de Git a su propio repositorio?

¿Cómo extraigo una rama de Git en su propio repositorio?

Respuesta

207

Simplemente puede insertar una bifurcación en un nuevo repositorio. Toda su historia irá con eso. A continuación, puede elegir si eliminar la rama del repositorio original.

p. Ej.

git push url://to/new/repository.git branch-to-move:new-branch-name 

Para un nuevo repositorio, el nombre de la nueva sucursal es típicamente maestro.

Creando un nuevo repositorio vacío se puede hacer con git init.

+12

Por si acaso alguien se pregunta, sustituí la URL con la ruta a un directorio de repositorio de Git, y funcionó perfectamente. – Aupajo

+41

También puede nombrar el nombre de la sucursal en el nuevo repositorio: 'git push url: //to/new/repository.git branch-to-move: new-branch-name' –

+4

El comentario anterior de Yves es correcto, de lo contrario no tendrá maestro allí y el proceso de clonación concluirá 'warning: remote HEAD se refiere a ref inexistente, incapaz de pagar. Si ya en esa etapa, simplemente vaya con 'git checkout -b branch-to-move' y usted está seguro o simplemente vaya con' git checkout -b master' para tener su rama principal :) –

12

Esto evitará que la historia de todas las ramas, pero que su punto de copia a la una rama en particular:

git clone -b newbranch CurrentRepo NewRepo 

esto no 'mover' nada, simplemente hace una copia.

+2

Merece la pena señalar que 'clone -b' es nuevo. Requiere git> = 1.6.5 (lanzado en octubre de 2009). –

+0

Tuve problemas para hacer que esto funcionara, pero eso fue antes de ver el mensaje de Charles Bailey. – Aupajo

Cuestiones relacionadas