En un artículo anterior veíamos como podíamos dividir un proyecto en submódulos y hoy veremos como podemos reunirlos de nuevo en el repositorio principal. Por desgracia es un poco complicado pero siguiendo la siguiente guía (encontrada en starkoverflow) lo conseguirás en un santiamén.
El primer paso: git submodule deinit
Para empezar debemos de desactivar el submódulo. Para ello tenemos el comando git submodule deinit
que es el opuesto al que usamos para dar de alta el submódulo git submodule init
. Sin embargo, como el objetivo final es reintegrar todo el código dentro del proyecto principal debemos conservar el contenido del submódulo llevandolo a una carpeta temporal con mv submodule_dir submodule_dir_tmp
.
Tras ello debemos eliminar del repositorio el trabajo guardado del módulo con git rm -f submodule_dir
.
Limpiar el directorio .git
Sin embargo, si tras eliminar el submódulo intentásemos agregar el código de nuevo tendríamos problemas y acabaríamos con un repositorio corrupto. Para ello debemos eliminar los datos relativos a ese submódulo del directorio .git con rm -rf .git/modules/submodule_dir
.
Devolver el código
Finalmente podemos reañadir todo el código que apartamos en submodule_dir_tmp.
El proceso completo
El proceso completo quedaría como sigue:
1 2 3 4 5 6 7 |
mv submodule_dir submodule_dir_tmp git submodule deinit -f -- submodule_dir rm -rf .git/modules/submodule_dir git rm -f submodule_dir mv submodule_dir_tmp submodule_dir |