Como un subconjunto de la pregunta detach-subdirectory ya hecha anteriormente y considerando el hecho de que aunque se hicieron muchas preguntas sobre el proceso de división y fusión de repositorios de git, no pude encuentre uno que toque el tema de la división cuando los submódulos estén presentes.Dividir un subdirectorio con submódulos en un repositorio de git separado
Así, en el siguiente escenario:
.git/
.gitmodules
folder/
data/
content/
other_data/
submoduleA/
submoduleB/
me gustaría obtener dos repositorios con la siguiente estructura:
.git/
data/
y
.git/
.gitmodules
content/
other_data/
submoduleA/
submoduleB/
El primer caso no es una problema y se puede resolver fácilmente con el método descrito en detach-subdirectory.
El segundo no tanto. La existencia de submódulos y el hecho de que .gitmodules contiene la ruta completa para folder/content/submoduleA
y folder/content/submoduleB
hace que parte del historial sea incoherente, ya que .gitmodules hace referencia a una estructura de directorios inexistente (una vez que se utiliza la rama de filtro).
Así que me gustaría saber si hay una manera de hacer esto sin causar un historial incoherente.
El uso de un segundo comando git filter-branch yo era capaz de reescribir .gitmodules con un comando sed, sin embargo, el real Las carpetas de submódulos aún no se han tocado (ambas con index-filter y tree-filter). Solo el subdirectorio-filtro fue capaz de cambiarlos, pero luego se elimina .gitmodules. El comando dividir submódulo git parece hacer exactamente lo que intento, pero al leer el hilo tuve la impresión de que tenía algunos problemas, así que no me siento cómodo al usarlo. – Unode
@Unode: lo entiendo. No creo que este parche en particular esté en desarrollo activo en este momento. – VonC