У меня есть ряд проектов, которые находятся в отдельных хранилищах Git прямо сейчас. Они также аналогичны отдельным проектам затмения (потому что я не смог использовать родительские проекты с использованием плагина Maven в течение длительного времени из-за ошибок в плагине m2). Теперь это работает.
Итак, я объединил проекты в Maven, создав базовый проект pom, добавив, что он является родителем для других. Затем я вложил подпроекты.
Когда я пошел, чтобы выполнить базовый проект как проект Git, он решил, что подкаталоги были подмодулями, хотя в корневом каталоге не было файла .gitmodules.
Похоже, единственный способ сделать это - потерять всю историю в проектах, которые будут объединены.
Просто, чтобы быть предельно ясным, текущие имеют:
Project A (repo A)
Project B (repo B)
Project C (repo C)
Я хочу:
New Base Project D (repo D)
/Project A
/Project B
/Project C
Я бы предпочел не потерять ни одной истории, но, если мне нужно, я бы предпочел, чтобы я мог начертить предыдущие версии. Я не думаю, что мне нужны подмодули, поскольку они, похоже, направлены на включение удаленных репозиториев, которые не находятся под вашим контролем.
Повернул решение в bash script. Он предполагает, что подкиды, которые вы хотите добавить, находятся в подкаталогах на одном уровне с родителем. Вот он:
#! /bin/bash
git remote add -f $1 ../$1
git merge -s ours --no-commit $1/master
git read-tree --prefix=$1 -u $1/master
git commit -m "Added project $1"
Git удивительно..