Przeczytaj ten artykuł.
https://saintgimp.org/2013/01/22/merging-two-git-repositories-into-one-repository-without-losing-file-history/
Masz nawet instrukcje jak przy wykorzystaniu komend możesz to zrobić, zachowując historię, po połączeniu możesz sobie poprzenosić odp. rzeczy na wybrane gałęzie, jeśli nie bezpośrednio.
Jeśli chcesz połączyć project-X się z project-Y:
cd path/to/project-y
git remote add project-x /path/to/project-x
git fetch project-x --tags
git merge --allow-unrelated-histories project-x/master # or whichever branch you want to merge
git remote remove project-x
W przypadku, gdy chcesz umieścić project-X JAKO PODKATALOG-PODDRZEWO, możesz użyć git-filter-repo Uruchom następujące polecenia przed powyższymi poleceniami:
cd path/to/project-x
git filter-repo --to-subdirectory-filter project-x
Przykład połączenia 2 dużych repozytoriów, umieszczenie jednego z nich w podkatalogu: https://gist.github.com/x-yuri/9890ab1079cf4357d6f269d073fd9731