Git: merge 2 repos with history

Иногда возникает необходимость объединить вместе 2 GIT репозитории (https://github.com/divlv/bigmainrepo и https://github.com/divlv/secondrepo). Например, включить одну в другую.
Идеальный вариант, если во 2-й репозитории используется своя структура каталогов (специальный каталог), чтобы при слиянии не возникало никаких "пересечений" по именам.

В главной репозитории (bigmainrepo), куда будем "сливать" вторую (secondrepo), можно переключиться в специальный branch, например "dev", поместить 2-й репозиторий (со всей историей) туда и затем сделать merge в main.

Для того чтобы объединить два репозитория, необходимо, зайдя в локальный каталог (bigmainrepo) выполнить следующие действия:

Забрать всё, что нужно с сервера:

get fetch --all

Посмотрим в каком мы branch-e:

git branch

Если нужно, переключимся, например на "dev":

git checkout dev

Добавим ссылку на второй репозиторий:

git remote add -f second_repo https://github.com/divlv/secondrepo

На этом шаге у нас могут появиться ошибки, что второй репозиторий не найден.
Это может быть из-за отсутствия [credentials] секции в конфиге второго проекта.
См. https://zaharov.info/git-enforce-username/

"Сольём" всё в один вместе с историей: (обратите внимание на ветку второго репозитория: main)

git merge --allow-unrelated-histories second_repo/main

На этом шаге сделает разрешить все конфликты (я не использовал здесь git merge --continue) и всё готово к commit/push-у.

Commit, Push и - имеем данные из второго репозитория (secondrepo) со всей историей внутри главного (bigmainrepo).