Ci è successo che abbiamo creato 2 repository per 2 progetti che erano così accoppiati da non avere senso separarli, quindi li abbiamo uniti.
Mostrerò come unire prima i rami master in ciascuno e poi spiegherò come estenderlo a tutti i rami che hai, spero che ti aiuti.
Se il sottomodulo funziona e si desidera convertirlo in una directory in atto, è possibile:
git clone project_uri project_name
Qui facciamo un clone pulito per funzionare. Per questo processo non è necessario inizializzare o aggiornare i sottomoduli, quindi saltalo.
cd project_name
vim .gitmodules
Modifica .gitmodulescon il tuo editor preferito (o Vim) per rimuovere il sottomodulo che intendi sostituire. Le linee che devi rimuovere dovrebbero avere un aspetto simile al seguente:
[submodule "lib/asi-http-request"]
path = lib/asi-http-request
url = https://github.com/pokeb/asi-http-request.git
Dopo aver salvato il file,
git rm --cached directory_of_submodule
git commit -am "Removed submodule_name as submodule"
rm -rf directory_of_submodule
Qui rimuoviamo completamente la relazione del sottomodulo in modo da poter creare portare l'altro repository sul progetto sul posto.
git remote add -f submodule_origin submodule_uri
git fetch submodel_origin/master
Qui prendiamo il repository del sottomodulo da unire.
git merge -s ours --no-commit submodule_origin/master
Qui iniziamo un'operazione di unione dei 2 repository, ma ci fermiamo prima del commit.
git read-tree --prefix=directory_of_submodule/ -u submodule_origin/master
Qui inviamo il contenuto del master nel sottomodulo alla directory in cui si trovava prima del prefisso di un nome di directory
git commit -am "submodule_name is now part of main project"
Qui completiamo la procedura eseguendo il commit delle modifiche nell'unione.
Al termine, è possibile eseguire il push e ricominciare con qualsiasi altro ramo da unire, è sufficiente controllare il ramo nel proprio repository che riceverà le modifiche e modificare il ramo che si sta portando nelle operazioni di unione e lettura.
git submodule deinit, vedi la mia risposta di seguito