Как можно объединить git - репозиторий r2 и r3 внутри r1 с коммитами и т.д.?

Структура папок:

r1 /
  .git
      r2/
         .git
          main.cpp
      r3/
         .git
          main1.cpp

Мне нужно объединить репозиторий r2 и r3 внутри r1 чтобы все коммити и истории перемешались

Я хочу, чтобы папки оставались на своих местах, а все истории и коммиты были объединены

точнее, здесь я клонировал репозиторий r2 и r3 внутри r1 , а затем опубликовал Но потом не смог открыт репозиторию r2 и r3 внутри github Там папка отображается, но открывается


Ответы (1 шт):

Автор решения: Герман Борисов

Есть такая утилита git filter-repo, официально рекомендованная авторами git.

Позволяет переписать историю в репозитории по указанным правилам. В частности, можно перенести во всех коммитах все файлы из корня репозитория в подпапку.

Выполняете такое действие с репозиториями r2 и r3.

Далее у r1 подключаете и r2 и r3 как remote, делаете из обоих fetch, и межите их master'а в master r1.

Готово.

PS конкретные команды не привожу, так как в разных ОС (Win, Linux) они будут сильно отличаться мелкими деталями типа кавычек, слэшей и т.д.

→ Ссылка