Il nous est arrivé que nous avons créé 2 référentiels pour 2 projets qui étaient tellement couplés qu'il n'était pas logique de les séparer, alors nous les avons fusionnés.
Je vais montrer comment fusionner les branches principales dans chaque première, puis je vais expliquer comment vous pouvez l'étendre à toutes les branches que vous avez, j'espère que cela vous aidera.
Si vous avez fait fonctionner le sous-module et que vous souhaitez le convertir en un répertoire en place, vous pouvez faire:
git clone project_uri project_name
Ici, nous faisons un clone propre pour travailler. Pour ce processus, vous n'avez pas besoin d'initialiser ou de mettre à jour les sous-modules, alors sautez-le simplement.
cd project_name
vim .gitmodules
Modifiez .gitmodules
avec votre éditeur préféré (ou Vim) pour supprimer le sous-module que vous prévoyez de remplacer. Les lignes que vous devez supprimer devraient ressembler à ceci:
[submodule "lib/asi-http-request"]
path = lib/asi-http-request
url = https://github.com/pokeb/asi-http-request.git
Après avoir enregistré le fichier,
git rm --cached directory_of_submodule
git commit -am "Removed submodule_name as submodule"
rm -rf directory_of_submodule
Ici, nous supprimons complètement la relation de sous-module afin que nous puissions créer mettre en place l'autre référentiel dans le projet.
git remote add -f submodule_origin submodule_uri
git fetch submodel_origin/master
Ici, nous récupérons le référentiel de sous-modules à fusionner.
git merge -s ours --no-commit submodule_origin/master
Ici, nous commençons une opération de fusion des 2 référentiels, mais nous arrêtons avant de valider.
git read-tree --prefix=directory_of_submodule/ -u submodule_origin/master
Ici, nous envoyons le contenu de master dans le sous-module au répertoire où il était avant de préfixer un nom de répertoire
git commit -am "submodule_name is now part of main project"
Ici, nous terminons la procédure en validant les modifications de la fusion.
Après avoir terminé cela, vous pouvez pousser et recommencer avec n'importe quelle autre branche à fusionner, il suffit de retirer la branche dans votre référentiel qui recevra les modifications et de changer la branche que vous apportez dans les opérations de fusion et de lecture.
git submodule deinit
, voir ma réponse ci