Как объединить два отдельных несвязанных репозитория Git в одно с одной историей

У меня есть два не связанных (не разделяющих регистрацию каких-либо предка) репозитория Git, один - супер-репозиторий, состоящий из нескольких небольших проектов (давайте назовем его репозиторием A). Другой - просто временное локальное хранилище Git для небольшого проекта (назовем его хранилище B). Графически это будет выглядеть так

A0-B0-C0-D0-E0-F0-G0-HEAD (repo A)
A0-B0-C0-D0-E0-F0-G0-HEAD (remote/master bare repo pulled & pushed from repo A)
A1-B1-C1-D1-E1-HEAD (repo B)

В идеале мне бы очень хотелось объединить репо B с репо A с единой историей. Так что может показаться, что я изначально начал проект в репо А. Графически это был бы идеальный конечный результат

A0-A1-B1-B0-D1-C0-D0-E0-F0-G0-E1-H(from repo B)-HEAD (new repo A)
A0-A1-B1-B0-D1-C0-D0-E0-F0-G0-E1-H(from repo B)-HEAD (remote/master bare repo pulled & pushed from repo A)

Я немного читал с подмодулями и поддеревом (кстати, Pro Git - довольно хорошая книга), но оба они, кажется, предлагают решение для поддержки двух отдельных веток с подмодулем, способным вытягивать изменения из восходящего и слегка поддеревьевого дерева. меньше головной боли Оба решения требуют дополнительных и специализированных команд git для обработки регистрации и синхронизации между ведущим и вспомогательным деревом / ветвью модуля. Оба решения также приводят к нескольким временным шкалам (при использовании поддерева вы даже получаете 3 отдельных временных шкалы при использовании --squash).

Похоже, о ближайшем решении SO »трансплантат", но так ли это на самом деле? Цель состоит в том, чтобы создать единый репозиторий, в котором я могу извлекать / подталкивать регистрации, чтобы больше не было репо B, только репо A в конце.

Ответы на вопрос(2)

Ваш ответ на вопрос