Я нашел С помощью Git, как лучше всего объединить поддерево с внешним проектом, в котором есть субмодули? , но, будучи связанным, он не отвечает на мой вопрос.
Предположим, у меня есть мой родительский проект и мой дочерний проект, который содержит подмодули. Как объединить дочерний проект в дочерний проект родительского проекта и сохранить работоспособность ссылок на подмодули?
Я пробовал такие вещи, как:
git remote add -f child_remote git://github.com/me/child.git
git checkout -b child_branch child_remote/master
git submodule init
git submodule update
git checkout master
git read-tree --prefix=child_directory/ -u child_branch
Но дерево чтения теряет подмодули, а .gitmodules появляется только в подкаталоге. Когда я пытаюсь выполнить инициализацию подмодуля git и обновить подмодуль git, я получаю сообщения об ошибках типа «Не найдено сопоставление подмодуля в .gitmodules для пути« child_directory / submodule_directory »».
Я также пытался изменить инструкции на http://help.github.com/subtree-merge/ для работы с подмодулями, но безрезультатно.
Я понимаю, что мог бы добиться этого, изменив вручную файл .gitmodules, чтобы он указывал на правильный путь, или слил в дочерний проект без подмодулей, а затем повторно добавил их в родительский проект, но я рассматриваю оба эти решения. быть хаки. Я ищу фактические команды, которые можно запустить, чтобы заставить это работать автоматически, без необходимости что-либо редактировать вручную.