Wie kombiniert man zwei getrennte, beziehungslose Git-Repositorys in einem mit single-Geschichte timeline

Habe ich zwei voneinander unabhängige (nicht gemeinsam Vorfahren Einchecken) Git-repositories, ist eine super-repository, welches aus einer Reihe von kleineren Projekten (Lets call it repository Ein). Das andere ist nur ein Notbehelf lokalen Git-repository für ein kleineres Projekt (nennen wir es-repository B). Grafisch, würde es so Aussehen

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)

Ideal, ich würde wirklich gerne merge-repo-B in Ein repo mit einer einzigen Geschichte timeline. So scheint es, dass ich ursprünglich startete das Projekt im repo A. Grafisch, wäre dies der ideale end-Resultat

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)

Habe ich etwas zu Lesen mit teilmodule und Unterstruktur (Pro Git ist ein ziemlich gutes Buch, übrigens), aber beide scheinen zu befriedigen, Lösung zur Beibehaltung von zwei separaten Zweig mit sub-Modul ist in der Lage, pull-änderungen von upstream-und der Teilbaum wird etwas weniger Kopfschmerzen. Beide Lösung erfordern zusätzliche und spezielle git-Befehle zu handhaben, check-ins und die Synchronisierung zwischen master-und sub-tree/Modul Zweig. Beide Lösung mehrere timelines (mit Teilbaum erhalten Sie sogar 3 separate Zeitleisten, wenn Sie --squash).

Die nächste Lösung, SO scheint zu sprechen "graft", aber ist das wirklich er? Das Ziel ist ein einheitliches repository, wo kann ich die pull/push-check-ins, so dass es nicht mehr repo-B, nur repo Ein Ende.

InformationsquelleAutor Antony | 2012-03-20
Schreibe einen Kommentar