2009-11-02 22 views
58

Tengo una carpeta en mi repositorio de Git que me gustaría mover a su propio repositorio. ¿Es posible mover el historial de esa carpeta junto con la carpeta?Subárbol de exportación en Git con historial

He estado haciendo anteriormente un git rm -r --cached subfolder/ y luego git init en la subcarpeta. Sin embargo, el historial no se importa al nuevo repositorio.

+2

Similar a, o duplicado de: http://stackoverflow.com/questions/811251/how-can-i-move-a-single-directory-from-ait-repository-to-a- new-repository-whil ​​ –

+0

Posible duplicado de [¿Cómo puedo mover un solo directorio desde un repositorio git a un nuevo repositorio mientras mantengo el historial?] (http://stackoverflow.com/questions/811251/how-can-i- move-a-single-directory-from-a-git-repository-a-a-new-repository-whil) – user

Respuesta

84

Citando un ejemplo de git-filter-branch(1)

Para volver a escribir el repositorio a parecer como si foodir/ha sido su raíz del proyecto, y desechar el resto de la historia:

git filter-branch --subdirectory-filter foodir -- --all 

De este modo se puede, por ejemplo, convertir un subdirectorio de biblioteca en un repositorio propio. Tenga en cuenta que - separa las opciones de la rama de filtro de las opciones de revisión, y --all para reescribir todas las ramas y etiquetas.

+42

Solo asegúrese de ejecutar esto en un clon del repositorio original, ya que borra el resto del repositorio. – bobDevil

+0

¡Increíble! No pude entender esa opción sin un ejemplo de trabajo. ¡Gracias! – matpie

+0

Además, gracias a @bobDevil por el aviso. Puse todos mis cambios en mi control remoto/antes/intentando esto, así estaría a salvo si limpiaba mi repositorio; pero sin duda sería inesperado. – matpie

Cuestiones relacionadas