Nos sucedió que creamos 2 repositorios para 2 proyectos que estaban tan acoplados que no tenía sentido separarlos, por lo que los fusionamos.
Primero mostraré cómo fusionar las ramas maestras en cada una y luego explicaré cómo puede extender esto a todas las ramas que tenga, espero que le sirva de ayuda.
Si tiene el submódulo funcionando y desea convertirlo a un directorio en su lugar, puede hacer lo siguiente:
git clone project_uri project_name
Aquí hacemos un clon limpio para trabajar. Para este proceso no necesita inicializar o actualizar los submódulos, así que simplemente omítalo.
cd project_name
vim .gitmodules
Edite .gitmodules
con su editor favorito (o Vim) para eliminar el submódulo que planea reemplazar. Las líneas que necesita eliminar deberían verse así:
[submodule "lib/asi-http-request"]
path = lib/asi-http-request
url = https://github.com/pokeb/asi-http-request.git
Después de guardar el archivo,
git rm --cached directory_of_submodule
git commit -am "Removed submodule_name as submodule"
rm -rf directory_of_submodule
Aquí eliminamos la relación de submódulo por completo para que podamos crear el otro repositorio al proyecto en el lugar.
git remote add -f submodule_origin submodule_uri
git fetch submodel_origin/master
Aquí buscamos el repositorio de submódulos para fusionar.
git merge -s ours --no-commit submodule_origin/master
Aquí comenzamos una operación de fusión de los 2 repositorios, pero nos detenemos antes de confirmar.
git read-tree --prefix=directory_of_submodule/ -u submodule_origin/master
Aquí enviamos el contenido de master en el submódulo al directorio donde estaba antes de prefijar un nombre de directorio
git commit -am "submodule_name is now part of main project"
Aquí completamos el procedimiento haciendo un commit de los cambios en la fusión.
Después de terminar esto, puede presionar y comenzar de nuevo con cualquier otra rama para fusionar, solo revise la rama en su repositorio que recibirá los cambios y cambie la rama que trae en las operaciones de fusión y árbol de lectura.
git submodule deinit
, vea mi respuesta a continuación